我试图弄清楚如何在Elasticsearch中实现以下内容,并且感觉好像我之前已经阅读过如何操作文档但却无法再找到它 .
我将搜索3个字段; profileIds, Headers 和描述 .
对于 Profiles ID我只是在寻找一个完全匹配的术语,这很简单 .
我将有一个与 Headers 和描述相匹配的短语列表,但我只想匹配,如果总共有3个或更多匹配任何关键字的 Headers 或描述(它不必是相同的关键字相同的领域) .
我知道我应该有一个嵌套或查询设置如下:(匹配配置文件ids,( Headers 上有3个匹配或任何关键字的描述))但我正在努力的部分是说“3匹配” .
这在Elasticsearch中是否可行?
1 回答
您可以使用bool query和terms query并使用
minimum_should_match
一起尝试 .例:
因此,两个
terms
查询必须至少匹配3个关键字 . 然后这两个中的一个应匹配,而_1074679必须始终匹配 .请注意,如果您的关键字少于3个,则
terms
查询将匹配,如果所有字词匹配 .