【问题标题】:The boolean fuzzy query in elasticsearch is not returning expected resultelasticsearch 中的布尔模糊查询未返回预期结果
【发布时间】:2019-11-29 23:36:19
【问题描述】:

我正在尝试在 elasticsearch 7.2.0 中对名字和姓氏构建模糊布尔查询。我有一份文件,其中“asim”和“banskota”分别作为名字和姓氏。但是,当我使用“asi”或“asimmm”以及确切的姓氏进行查询时,elasticsearch 不会返回任何结果。但是,当使用确切的名字或“asimm”进行查询时,它会从文档中返回预期的结果。

我还写了一个“模糊”查询而不是“匹配”。我尝试了不同的模糊参数,但结果是一样的。名字和姓氏都被分析了,我查询了'analyzer' API wrt它是如何分析的 “阿西姆”。它使用标准分析器将带有“asim”的文档作为单个标记进行索引。

编辑:事实证明,模糊查询适用于“替换”情况,例如,当使用“asmi”进行查询但不用于删除时,它会返回“asim”的结果。令我惊讶的是,替换中的编辑距离大于删除情况下的编辑距离。当字符串长度较大时,例如姓氏“班斯科塔”,模糊匹配也适用于“删除”情况。我应该怎么做才能使模糊搜索在字符串长度为 4 或 5 的“删除”情况下工作?

fuzzy_body = {"size": 10, 
               "query":{
                   "bool":{
                      "must": [


                    {
                        "match":{"FIRST_NAME_N":{'query': 'asi',"fuzziness": "AUTO"}},

                    },

                   {
                   "fuzzy":{"LAST_NAME_N": "banskota"}
                   }
                      ]
                   }
               }
              }

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    事实证明,如果名称字段被索引为关键字类型,则查询返回带有“AUTO”模糊性的预期结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多