美文网首页Elasticsearch专栏
Elasticsearch 实现模糊搜索

Elasticsearch 实现模糊搜索

作者: 蒙嘉 | 来源:发表于2020-12-11 11:07 被阅读0次

1、match query实现模糊搜索,该方式会对匹配文本进行分词然后匹配分词后的每个词项,匹配操作有OR和AND,默认为OR

{
  "query": {
    "match": {
      "text": {
        "query":     "hello world",
        "fuzziness": "AUTO",
        "operator":  "and"
      }
    }
  }
}

查询字符串首先进行分析,会产生词项 [hello,world] ,并且每个词项根据指定的 fuzziness 进行模糊化。如果match query所查询的字段为keyword类型则不会进行分词,等同term精确匹配查询。

2、match phase query实现模糊搜索,该方式不会对匹配文本进行分词,能够在text类型的字段上进行数据库like的匹配效果。

{
  "query": {
    "match_phrase": {
      "message": "this is a test"
    }
  }
}

3、fuzzy query实现模糊搜索,fuzzy 查询是一个词项级别的查询,所以它不做任何分析。它通过某个词项以及指定的 fuzziness 查找到词典中所有的词项。 fuzziness 默认设置为 AUTO 。

{
  "query": {
    "fuzzy": {
      "text": "surprize"
    }
  }
}

相关文章

网友评论

    本文标题:Elasticsearch 实现模糊搜索

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