MultiMatchQueryBuilder

MultiMatchQueryBuilder

我有一堆存储在elasticsearch中的文档,其中包含字段titleabstract。我必须在文档中搜索诸如'word1 word2 ..'之类的查询。目前我正在使用spring数据

MultiMatchQueryBuilder multiMatchQueryBuilder = new MultiMatchQueryBuilder(query, "abstract", "title");
Iterable<Document> result = documentRepository.search(multiMatchQueryBuilder);

这给了我所有包含word1word2的文档。如何匹配所有关键字?它应该给我包含查询word1word2中所有单词的文档。基本上,我想要搜索查询中所有关键字的and而不是or

最佳答案

您可以这样指定AND运算符:

MultiMatchQueryBuilder multiMatchQueryBuilder = new MultiMatchQueryBuilder(query, "abstract", "title")
   .operator(Operator.AND);     // <---- add this
Iterable<Document> result = documentRepository.search(multiMatchQueryBuilder);

09-27 11:46