Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
SkyWalking
提交
37162196
S
SkyWalking
项目概览
apache
/
SkyWalking
上一次同步 大约 1 年
通知
302
Star
21345
Fork
6091
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
SkyWalking
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
37162196
编写于
9月 14, 2021
作者:
K
kezhenxu94
提交者:
GitHub
9月 14, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix that `Query` cannot be updated after it's set in `Search` (#7710)
上级
7560c990
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
98 addition
and
5 deletion
+98
-5
oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/search/MatchQuery.java
...ing/library/elasticsearch/requests/search/MatchQuery.java
+6
-2
oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/search/SearchBuilder.java
.../library/elasticsearch/requests/search/SearchBuilder.java
+21
-3
oap-server/server-library/library-elasticsearch-client/src/test/java/org/apache/skywalking/library/elasticsearch/requests/search/SearchBuilderTest.java
...rary/elasticsearch/requests/search/SearchBuilderTest.java
+60
-0
pom.xml
pom.xml
+11
-0
未找到文件。
oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/search/MatchQuery.java
浏览文件 @
37162196
...
...
@@ -38,10 +38,14 @@ public final class MatchQuery extends Query {
public
void
serialize
(
final
MatchQuery
value
,
final
JsonGenerator
gen
,
final
SerializerProvider
provider
)
throws
IOException
{
gen
.
writeFieldName
(
"match"
);
gen
.
writeStartObject
();
{
gen
.
writeStringField
(
value
.
getName
(),
value
.
getText
());
gen
.
writeFieldName
(
"match"
);
gen
.
writeStartObject
();
{
gen
.
writeStringField
(
value
.
getName
(),
value
.
getText
());
}
gen
.
writeEndObject
();
}
gen
.
writeEndObject
();
}
...
...
oap-server/server-library/library-elasticsearch-client/src/main/java/org/apache/skywalking/library/elasticsearch/requests/search/SearchBuilder.java
浏览文件 @
37162196
...
...
@@ -24,12 +24,14 @@ import org.apache.skywalking.library.elasticsearch.requests.search.aggregation.A
import
org.apache.skywalking.library.elasticsearch.requests.search.aggregation.AggregationBuilder
;
import
static
com
.
google
.
common
.
base
.
Preconditions
.
checkArgument
;
import
static
com
.
google
.
common
.
base
.
Preconditions
.
checkState
;
import
static
java
.
util
.
Objects
.
requireNonNull
;
public
final
class
SearchBuilder
{
private
Integer
from
;
private
Integer
size
;
private
Query
query
;
private
QueryBuilder
queryBuilder
;
private
ImmutableList
.
Builder
<
Sort
>
sort
;
private
ImmutableMap
.
Builder
<
String
,
Aggregation
>
aggregations
;
...
...
@@ -58,13 +60,15 @@ public final class SearchBuilder {
}
public
SearchBuilder
query
(
Query
query
)
{
requireNonNull
(
query
,
"query"
);
this
.
query
=
query
;
ensureQueryIsNotSet
(
);
this
.
query
=
requireNonNull
(
query
,
"query"
)
;
return
this
;
}
public
SearchBuilder
query
(
QueryBuilder
queryBuilder
)
{
return
query
(
queryBuilder
.
build
());
ensureQueryIsNotSet
();
this
.
queryBuilder
=
requireNonNull
(
queryBuilder
,
"queryBuilder"
);
return
this
;
}
public
SearchBuilder
aggregation
(
Aggregation
aggregation
)
{
...
...
@@ -92,6 +96,14 @@ public final class SearchBuilder {
}
else
{
aggregations
=
aggregations
().
build
();
}
final
Query
query
;
if
(
this
.
query
!=
null
)
{
query
=
this
.
query
;
}
else
if
(
queryBuilder
!=
null
)
{
query
=
queryBuilder
.
build
();
}
else
{
query
=
null
;
}
return
new
Search
(
from
,
size
,
query
,
sorts
,
aggregations
...
...
@@ -111,4 +123,10 @@ public final class SearchBuilder {
}
return
aggregations
;
}
private
void
ensureQueryIsNotSet
()
{
final
String
errMsg
=
"query and queryBuilder can not be set simultaneously"
;
checkState
(
query
==
null
,
errMsg
);
checkState
(
queryBuilder
==
null
,
errMsg
);
}
}
oap-server/server-library/library-elasticsearch-client/src/test/java/org/apache/skywalking/library/elasticsearch/requests/search/SearchBuilderTest.java
0 → 100644
浏览文件 @
37162196
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.apache.skywalking.library.elasticsearch.requests.search
;
import
org.junit.Test
;
import
static
org
.
assertj
.
core
.
api
.
Assertions
.
assertThat
;
public
class
SearchBuilderTest
{
@Test
public
void
searchQueryShouldBeUpdatableAfterSet
()
{
final
BoolQueryBuilder
queryBuilder
=
Query
.
bool
();
final
SearchBuilder
searchBuilder
=
Search
.
builder
().
query
(
queryBuilder
);
queryBuilder
.
must
(
Query
.
term
(
"t"
,
"v"
));
queryBuilder
.
should
(
Query
.
term
(
"t"
,
"v"
));
queryBuilder
.
mustNot
(
Query
.
term
(
"t2"
,
"v2"
));
queryBuilder
.
shouldNot
(
Query
.
term
(
"t2"
,
"v2"
));
queryBuilder
.
shouldNot
(
Query
.
term
(
"t2"
,
"v2"
));
final
BoolQuery
query
=
(
BoolQuery
)
searchBuilder
.
build
().
getQuery
();
assertThat
(
query
.
getMust
()).
hasSize
(
1
);
assertThat
(
query
.
getShould
()).
hasSize
(
1
);
assertThat
(
query
.
getMustNot
()).
hasSize
(
1
);
assertThat
(
query
.
getShouldNot
()).
hasSize
(
2
);
}
@Test
(
expected
=
IllegalStateException
.
class
)
public
void
searchQueryBuilderShouldNotBeSetMultipleTimes
()
{
final
BoolQueryBuilder
queryBuilder
=
Query
.
bool
();
final
SearchBuilder
searchBuilder
=
Search
.
builder
().
query
(
queryBuilder
);
searchBuilder
.
query
(
Query
.
bool
());
}
@Test
(
expected
=
IllegalStateException
.
class
)
public
void
searchQueryShouldNotBeSetMultipleTimes
()
{
final
SearchBuilder
searchBuilder
=
Search
.
builder
().
query
(
Query
.
bool
().
build
());
searchBuilder
.
query
(
Query
.
bool
().
build
());
}
@Test
(
expected
=
IllegalStateException
.
class
)
public
void
searchQueryAndBuilderShouldNotBeSetSimultaneously
()
{
final
SearchBuilder
searchBuilder
=
Search
.
builder
().
query
(
Query
.
bool
().
build
());
searchBuilder
.
query
(
Query
.
bool
());
}
}
pom.xml
浏览文件 @
37162196
...
...
@@ -209,6 +209,7 @@
<jmh.version>
1.21
</jmh.version>
<gmaven-plugin.version>
1.5
</gmaven-plugin.version>
<checkstyle.fails.on.error>
true
</checkstyle.fails.on.error>
<assertj-core.version>
3.20.2
</assertj-core.version>
</properties>
...
...
@@ -233,6 +234,10 @@
<artifactId>
objenesis
</artifactId>
<scope>
test
</scope>
</dependency>
<dependency>
<groupId>
org.assertj
</groupId>
<artifactId>
assertj-core
</artifactId>
</dependency>
<dependency>
<groupId>
org.openjdk.jmh
</groupId>
...
...
@@ -287,6 +292,12 @@
<version>
${objenesis.version}
</version>
<scope>
test
</scope>
</dependency>
<dependency>
<groupId>
org.assertj
</groupId>
<artifactId>
assertj-core
</artifactId>
<version>
${assertj-core.version}
</version>
<scope>
test
</scope>
</dependency>
<dependency>
<groupId>
org.openjdk.jmh
</groupId>
<artifactId>
jmh-generator-annprocess
</artifactId>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录