elasticsearch - 3 个字母词的模糊性

标签 elasticsearch

您会在 Elasticsearch 中实现哪种分析器来搜索书名。

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

我不打算包括代码,因为我想获得新的见解。 但我遇到的问题是,当我搜索错误的 3 个字母时, 假设我输入“dns”并且有一个包含字段“dna”的文档然后我会得到 善意或在这个词中有 dns 的东西。

最佳答案

我相信要解决您的问题,您可以在模糊查询中使用 fuzziness 字段,这将使您可以设置最大编辑距离,这样当您输入的单词非常小时,长单词将无法匹配。

{
"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

关于elasticsearch - 3 个字母词的模糊性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37837596/

相关文章:

elasticsearch - 在一组关键字中过滤关键字

elasticsearch - Elasticsearch节点未获得任何碎片-如何诊断原因?

elasticsearch - Elasticsearch馆长退出代码

api - 如何在java api中编写elasticsearch script_score

elasticsearch - Shell和Cron之间的馆长版本差异

elasticsearch - Elasticsearch - Kafka Connect 未将正确的键值发布为文档 ID

sorting - 在ElasticSearch中,sort如何与function_score交互?

json - 如何使用Logstash和Kibana分解JSON数据

python-2.7 - 帮助程序扫描超过 90000 个文档失败?

elasticsearch - 使用ELK Stack进行实时服务监视