Java 如何使用BoolQueryBuilder构建多重匹配查询
我想使用multiMatchQuery使用ElasticSearch搜索字段。这是我的代码:Java 如何使用BoolQueryBuilder构建多重匹配查询,java,
elasticsearch,Java,
elasticsearch,我想使用multiMatchQuery使用ElasticSearch搜索字段。这是我的代码: private BoolQueryBuilder addSearchQuery(BoolQueryBuilder boolQueryBuilder, String search) { String[] searchArray= {"fieldA", "fieldB"}; QueryBuilders.multiMatchQuery(search, searchAr
private BoolQueryBuilder addSearchQuery(BoolQueryBuilder boolQueryBuilder, String search) {
String[] searchArray= {"fieldA", "fieldB"};
QueryBuilders.multiMatchQuery(search, searchArray).operator(Operator.AND);
return QueryBuilders.boolQuery();
}
它应该是跨字段a
和字段B
的搜索。我做错了什么
private BoolQueryBuilder addSearchQuery(BoolQueryBuilder boolQueryBuilder, String search) {
String[] searchArray= ["fieldA", "fieldB"];
return boolQueryBuilder.must(QueryBuilders. multiMatchQuery(search, Arrays.asList(searchArray).operator(Operator.AND));
}
您可以直接创建一个列表并传递它,而不是将其声明为数组。因为代码中有数组,所以我修改了它 不起作用:(我使用JDK12。我得到一个空的结果列表。你可以在控制台中打印查询并直接在kibhana中运行它,然后查看得到的结果吗?)通常,and运算符需要所有部分才能成功(转换:值必须在两列中)。请尝试OR运算符