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。

语音匹配

你可能感兴趣的:(Fuzzy Matching)