使用MultiMatchQueryBuilder进行'和'关键字查询搜索

时间:2016-05-16 01:41:39

标签: java elasticsearch spring-data

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

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

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

1 个答案:

答案 0 :(得分:3)

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

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