我想使用multiMatchQuery使用ElasticSearch搜索字段。这是我的代码:

    private BoolQueryBuilder addSearchQuery(BoolQueryBuilder boolQueryBuilder, String search) {
        String[] searchArray= {"fieldA", "fieldB"};

        QueryBuilders.multiMatchQuery(search, searchArray).operator(Operator.AND);

        return QueryBuilders.boolQuery();

    }

应该在fieldAfieldB上进行搜索。我究竟做错了什么?

最佳答案

private BoolQueryBuilder addSearchQuery(BoolQueryBuilder boolQueryBuilder, String search) {
        String[] searchArray= ["fieldA", "fieldB"];
        return boolQueryBuilder.must(QueryBuilders. multiMatchQuery(search, Arrays.asList(searchArray).operator(Operator.AND));
    }

您可以直接创建一个列表并将其传递,而不是将其声明为数组。由于代码中包含数组,因此我对其进行了修改。

09-12 21:55