elasticsearch,Java,elasticsearch" /> elasticsearch,Java,elasticsearch" />

Java 如何使用BoolQueryBuilder构建多重匹配查询

Java 如何使用BoolQueryBuilder构建多重匹配查询,java,elasticsearch,Java,elasticsearch,我想使用multiMatchQuery使用ElasticSearch搜索字段。这是我的代码: private BoolQueryBuilder addSearchQuery(BoolQueryBuilder boolQueryBuilder, String search) { String[] searchArray= {"fieldA", "fieldB"}; QueryBuilders.multiMatchQuery(search, searchAr

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

    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运算符