![](/img/trans.png)
[英]Build ElasticSearch Query using org.elasticsearch:elasticsearch java library
[英]Not able to build query for Elasticsearch using java api
我正在尝试通过Java API查询Elasticsearch的以下ElasticSearch查询
get my_index12/_search {
"query" : {
"bool": {
"must": [
{
"match": {
"code": {
"query": "TE-7000-8002-W",
"operator": "and"
}
}
},
{
"match": {
"locale": {
"query": "en_US",
"operator": "and"
}
}
}
]
}
}
}
上面的查询工作正常是Kibana。 我正在尝试使用Elasticsearch Java API复制相同的查询。
请找到我要构建的JAVA API查询。
QueryBuilder qb = QueryBuilders.boolQuery().must(QueryBuilders.matchQuery("code",name)).operator(Operator.AND);
正在从日食中获取以下错误。
The method operator(Operator) is undefined for the type BoolQueryBuilder
我正在使用Elasticsearch 6.2.3版本
在Java Transport Client中,搜索请求可以同时以QueryBuilders和XContent格式构建,后者以json格式构建查询参数。 使用QueryBuilder,尤其是BoolQuery,查询dsl中的运算符由must()(均值和运算符)或must()(均值或运算符)表示。
如前所述,您的查询可以表示为:
QueryBuilders.boolQuery().must().must().build();
另一个有趣的问题是如何呈现以下查询DSL:
{
"query": {
"bool": {
"must": [{
"term": {
"field1": "value"
}
}, {
"match": {
"filed2": "value"
}
}],
"should": [{
"term": {
"field3": "value"
}
},{
"term": {
"field4": "value"
}]
}
}
}
一旦您了解了演示查询DSL并成功使用Java API实现了它,就意味着您将了解Java Transport客户端API。 希望能为您提供帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.