如何避免弹性搜索字段中的部分查询匹配

时间:2019-08-12 14:43:26

标签: elasticsearch

我的弹性搜索索引中有一个字段title,该字段被边缘n-gram标记。当我查询它时,还会找到没有确切n-gram的文档,而且我也不明白为什么。

查询为“ dcd77” -没有文档包含完整的单词,但许多文档的标题中都包含该单词。例如。 “ Bla bla dcd776S” 。这些是我希望找到的文档,因为它们包含查询。

我确实找到了许多文档,例如“ Bla bla dcd465” ,其中包含我的查询

如何告诉ES不退还这些?

我以为问题是模糊性,但我已经将其设置为0,甚至增加了前缀长度,但无济于事。

这是我的查询

{
  "query" : {
    "bool" : {
      "must" : [
        {
          "multi_match" : {
            "query" : "dcd77",
            "fields" : [
              "title",
              "content"
            ],
            "fuzziness":0,
            "operator" : "AND",
            "prefix_length" : 5,
          }
        }
      ],
      "disable_coord" : false,
      "adjust_pure_negative" : true,
      "boost" : 1.0
    }
  }
}

非常感谢您的帮助!

0 个答案:

没有答案