ElasticSearch纠错和自动补全

ElasticSearch纠错和自动补全

  1. 建立映射

    PUT /suggest
    {
      "mappings": {
        "properties": {
          "suggest": {
            "type": "completion"
          }
        }
      }
    }
    

    先建立一个mapping,注意类型"type": "completion"

  2. 添加一些数据

    POST /suggest/_doc
    {
      "suggest":"数据"
    }
    POST /suggest/_doc
    {
      "suggest":"数据挖掘"
    }
    POST /suggest/_doc
    {
      "suggest":"数据挖掘分析"
    }
    POST /suggest/_doc
    {
      "suggest":"数据挖掘分析工具"
    }
    

    为了方便说明添加一些简单的关键词

  3. 示例

    #自动完成
    POST /suggest/_search
    {
      "suggest": {
        "YOUR_SUGGESTION": {
          "prefix": "数据",
          "completion": {
            "field": "suggest",
            "size": 10
          }
        }
      }
    }
    

    自动完成:

    prefix前缀,默认匹配至少第一个字

    field字段名

    size返回数量

    参考:https://www.elastic.co/guide/en/elasticsearch/reference/7.10/search-suggesters.html#completion-suggester

    #术语纠错
    POST /suggest/_search
    {
      "suggest": {
        "YOUR_SUGGESTION": {
          "text": "数据哇掘",
          "term": {
            "suggest_mode": "always",
            "min_word_length": 2,
            "size": 10,
            "field": "suggest"
          }
        }
      }
    }
    

    注意术语纠错的mapping字段不能是text,因为是中文所以进行不能分词不然"数据哇掘"会被分成"数据"、“哇”、"掘"会进行分别纠错导致的结果就没有出错,而不会对"数据哇掘"进行整体纠错。

    min_word_length表示文本长度最少是2,因为中文一个字没法纠错

    参考:https://www.elastic.co/guide/en/elasticsearch/reference/7.10/search-suggesters.html#term-suggester

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值