Fuzzy Matching

拼写错误

Fuzzy matching允许查询时匹配错误拼写的单词。
语音语汇单元过滤器可以在索引时用来进行近似读音匹配。

模糊性

度量一个单词转换到另一个单词需要多少次词单字符编辑
fuzziness 参数指定最大编辑次数,可以被设置为auto

模糊查询

GET /my_index/my_type/_search
{
  "query": {
    "fuzzy": {
      "text": "surprize"
    }
  }
}

fuzzy查询时一个词项级别的查询,所以它不做任何分析。
如何提高性能?
参数prefix_length,表示不能被'模糊化'的初始字符数。
参数max_expansions,用来限制将产生的模糊选项的总数量。

模糊匹配查询

match查询支持开箱即用的模糊匹配

GET /my_index/my_type/_search
{
  "query": {
    "match": {
      "text": {
        "query":     "SURPRIZE ME!",
        "fuzziness": "AUTO",
        "operator":  "and"
      }
    }
  }
}

multi_match查询也支持fuzziness,但只有当执行查询类型是best_fields或者most_fields

GET /my_index/my_type/_search
{
  "query": {
    "multi_match": {
      "fields":  [ "text", "title" ],
      "query":     "SURPRIZE ME!",
      "fuzziness": "AUTO"
    }
  }
}

模糊性评分

假如1000个文档是Schwarzenegger ,而一个错误文档是Schwarzeneger ,根据IF/IDF,拼写错误的文档相关度更高。所有模糊性评分恒定为1。

语音匹配

略

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容