无法使用java api为Elasticsearch生成查询
我试图通过java api查询elasticsearch,以获得以下elasticsearch查询无法使用java api为Elasticsearch生成查询,java,
elasticsearch,kibana,elastic-stack,Java,
elasticsearch,Kibana,Elastic Stack,我试图通过java api查询elasticsearch,以获得以下elasticsearch查询 get my_index12/_search { "query" : { "bool": { "must": [ { "match": { "code": {
get my_index12/_search {
"query" : {
"bool": {
"must": [
{
"match": {
"code": {
"query": "TE-7000-8002-W",
"operator": "and"
}
}
},
{
"match": {
"locale": {
"query": "en_US",
"operator": "and"
}
}
}
]
}
}
}
以上查询在Kibana中运行良好。我试图使用ElasticSearchJavaAPI复制相同的查询
请查找我正在尝试构建的JAVA API查询
QueryBuilder qb = QueryBuilders.boolQuery().must(QueryBuilders.matchQuery("code",name)).operator(Operator.AND);
我从eclipse获得以下错误
The method operator(Operator) is undefined for the type BoolQueryBuilder
Am在java传输客户端中使用Elasticsearch 6.2.3版本,可以以QueryBuilder和XContent格式生成搜索请求,XContent格式以json格式生成查询参数。 对于QueryBuilder,尤其是BoolQuery,查询dsl中的运算符由must()(means和operator)或shoul()(means或operator)表示 如上所述,您的查询可以表示为:
QueryBuilders.boolQuery().must().must().build();
另一个有趣的问题是如何显示以下查询DSL:
{
"query": {
"bool": {
"must": [{
"term": {
"field1": "value"
}
}, {
"match": {
"filed2": "value"
}
}],
"should": [{
"term": {
"field3": "value"
}
},{
"term": {
"field4": "value"
}]
}
}
}
一旦您能够理解演示查询DSL并成功地用JavaAPI实现它,就意味着您开始了解java传输客户端API。
希望能为您提供一些帮助
必须
默认情况下,布尔值是否存在,您是否需要再次明确指定它?