停止ElasticSearch标记化查询

uttx8gqw  于 2022-11-02  发布在  ElasticSearch
关注(0)|答案(1)|浏览(186)

我试图在ElasticSearch8.4中过滤掉一些文档。我遇到的问题是这样的...

must_not: [
    match: { ingredients: { query : 'peanut butter' } }
]

似乎将查询分解为“peanut”和“butter”。然后,包含“butter”成分的文档会被错误地过滤。有没有方法在不定义自定义分析器的情况下防止这种标记化?或者可能有不同的搜索方法来获得该结果?

iugsix8n

iugsix8n1#

如果您不想过滤只包含“peanut”或“butter”的文档,则需要使用“and”运算符。这样,只有包含“peanut butter”的文档才会被过滤。

{
   "query": {
     "bool": {
       "must_not": [
         {
           "match": {
             "ingredients": {
               "query": "peanut butter",
               "operator": "and"
             }
           }
         }
       ]
     }
   }
}

相关问题