【发布时间】:2015-12-11 08:51:52
【问题描述】:
我们可以像这样搜索特定 document.field 中的所有单词:
{ "query" : { "match" : { "title": { "query" : "Black Nike Mens", "operator" : "and" } } } }
这将在title 字段中搜索单词Black、Nike 和Mens,以便仅返回那些在title 字段中包含所有这些单词的文档。
但我想做的有点不同。
我想查找,如果文档的 title 字段的所有单词都存在于我的搜索查询中,那么它将返回该文档。
例如
假设elasticsearch数据库中有title : "Nike Free Sparq Mens White"的文档
现在,如果我使用 query : "Nike Free Sparq 09 - Mens - White/Black/Varsity Red" 进行搜索,那么它应该返回此文档,因为 document.title 中的所有单词都存在于我的查询中
但如果我使用 query : "Nike Free Lebron - Mens - White/Black" 进行搜索,那么它不应该返回文档,因为我的查询缺少单词 Sparq
这是一种反向运算符搜索
这可能吗?如果是,那么如何?
【问题讨论】:
-
看看这个链接。你会在那里找到答案:) stackoverflow.com/questions/26001002/…
-
感谢@betto86 的帮助,它没有回答我的问题,但在更多相关的事情上帮助了我。
-
虽然您发布了解决方法,但我也想知道更清洁的解决方案。
标签: elasticsearch