使用 Elasticsearch 高级 REST Client for Java v7.3
我在架构中有几个字段如下所示:
{
"document_type" : ["Utility", "Credit"]
}
基本上,一个字段可以有一个字符串数组作为值。我不仅需要查询特定document_type,还需要查询常规字符串查询。
我尝试了以下代码:
QueryBuilder query = QueryBuilders.boolQuery()
.must(QueryBuilders.queryStringQuery(terms))
.filter(QueryBuilders.termQuery("document_type", "Utility"));
。这不会返回任何结果。如果我删除".filter(("部分,查询返回正常,但过滤器似乎阻止任何结果返回。我怀疑这是因为document_type是一个多值数组 - 也许我错了。如何构建查询查询特定术语的所有文档,同时按document_type进行筛选?
我认为,原因是错误的查询。请考虑使用术语s查询而不是术语查询。Java API 中也有一个 eqivalent。
以下是查询 qsl 查询及其在高级 rest 客户端中的等价的良好概述: https://www.elastic.co/guide/en/elasticsearch/client/java-rest/current/java-rest-high-query-builders.html