美文网首页
Fuzzy查询

Fuzzy查询

作者: caster | 来源:发表于2020-11-13 09:07 被阅读0次

    对应72.官放文档路径:Query DSL » Term-level queries » Fuzzy query
    官方地址如下:
    https://www.elastic.co/guide/en/elasticsearch/reference/7.2/query-dsl-fuzzy-query.html

    返回包含和查询的term相似的terms的文档,以Levenshtein edit distance字符串相似度算法考量

    编辑距离是将一个term改为另一个term所需要的字符更改次数,更改操作如下:

    1. 更改一个字符(box->fox)
    2. 去掉一个字符(box->ox)
    3. 添加一个字符(bo->box)
    4. 转置两个相邻字符(box->obx)

    为了找到相似的terms,fuzzy查询会在指定的编辑距离内创建一组基于查询term的所有可能的变形或扩展terms集合。查询然后返回集合内每个term的匹配。
    示例:

    GET /_search
    {
      "query": {
        "fuzzy": {
          "user": {
            "value": "ki",
            "fuzziness": "AUTO",
            "max_expansions": 50,
            "prefix_length": 0,
            "transpositions": true,
            "rewrite": "constant_score"
          }
        }
      }
    }   
    

    fuzzy的顶级参数:

    <filed> :必填,要查询的字段名

    <filed> 的参数:

    value: 必填,要查询的值
    fuzziness: 选填,允许匹配的最大编辑距离
    max_expansions: 选填,创建的最大差异变化数,默认为50
    prefix_length: 选填,创建terms时保留不变的开始字符数,默认为0
    transpositions: 选填,表示是否包含转置两个相邻字符ab->ba,默认为true
    rewrite: 选填,用于重写查询方法

    相关文章

      网友评论

          本文标题:Fuzzy查询

          本文链接:https://www.haomeiwen.com/subject/zzhsbktx.html