我想使用multiMatchQuery使用ElasticSearch搜索字段。这是我的代码:
private BoolQueryBuilder addSearchQuery(BoolQueryBuilder boolQueryBuilder, String search) {
String[] searchArray= {"fieldA", "fieldB"};
QueryBuilders.multiMatchQuery(search, searchArray).operator(Operator.AND);
return QueryBuilders.boolQuery();
}
应该在
fieldA
和fieldB
上进行搜索。我究竟做错了什么? 最佳答案
private BoolQueryBuilder addSearchQuery(BoolQueryBuilder boolQueryBuilder, String search) {
String[] searchArray= ["fieldA", "fieldB"];
return boolQueryBuilder.must(QueryBuilders. multiMatchQuery(search, Arrays.asList(searchArray).operator(Operator.AND));
}
您可以直接创建一个列表并将其传递,而不是将其声明为数组。由于代码中包含数组,因此我对其进行了修改。