3字母词的模糊性

时间:2016-06-15 13:57:16

标签: elasticsearch

您将在Elasticsearch中使用哪种分析器来搜索书名。

要求是必须有模糊性,并且有3个字母的单词。

我不打算包含代码,因为我希望获得新的见解。 但我遇到的问题是,当我搜索3个字母错误时, 说我键入" dns"并且有一个带有字段的文档" dna"然后我会得到 善意或在单词中有dns的东西。

1 个答案:

答案 0 :(得分:2)

我相信你可以在模糊查询中使用模糊字段来解决你的问题,这样你就可以设置最大编辑距离,这样当输入是一个非常小的单词时,单词就不会匹配。

{
"fuzzy" : {
    "user" : {
        "value" :         "ki",
        "fuzziness" :     2,
        "prefix_length" : 1
    }
  }
}

以上查询将匹配以字母“k”开头的所有3个字母的单词。以及以字母' ki'开头的所有4个字母单词。 2的模糊性意味着允许任何2次编辑,即改变' i'到另一个字母,然后添加另一个字母或添加两个字母,同时保持' ki'。前缀长度告诉elasticsearch在模糊可以接管之前需要完全匹配多少查询。

https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-fuzzy-query.html