elasticsearch匹配搜索查询中来自文档的所有单词
我们可以像这样搜索特定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"
搜索query : "Nike Free Sparq 09 - Mens - White/Black/Varsity Red"
那么它应该返回这个文件,因为document.title中的所有单词都存在于我的查询中
但如果我用query : "Nike Free Lebron - Mens - White/Black"
搜索query : "Nike Free Lebron - Mens - White/Black"
那么它不应该返回文档,因为我的查询中缺少Sparq
这个词
这是一种反向和运算符搜索
这可能吗? 如果是,那么如何?
我终于完成了它的工作,但没有直接的方法!
这就是我所做的:
这对我来说足够好了!
除非有人使用弹性搜索查询语言的直接方法。
链接地址: http://www.djcxy.com/p/29061.html上一篇: elasticsearch match all words from document in the search query