zoukankan      html  css  js  c++  java
  • elasticsearch-搜索建议(八)

    Completion Suggester

    智能提示

    {
        "settings": {
        
        },
        "mappings": {
            "doc": {
                "properties": {
                    "productName": {
                      "type" : "text",
                       "analyzer":"ik_max_word"
                    },
                    "productNameSuggester":{
                        "type" : "completion",//智能提示字段
                        "search_analyzer":"ik_max_word",//搜索使用分词默认跟索引一直
                        "analyzer":"ik_max_word",//索引分词
                        "max_input_length":50,//提示字段长度 如果为2 雪花啤酒 输入雪 提示雪花  输入雪花 也提示雪花
                        "preserve_separators":true,//默认值  如果希望Foo Fighters  输入foof能提示的话则改为false
                        "preserve_position_increments":true //启用停用分词器
                    }
                }
            }
        }
    
    }

    插入数据

    {
        "productName":"雪花纯生8度500ml统一标准专用白瓶1*6纸箱手提",
        "productNameSuggester":"雪花纯生8度500ml统一标准专用白瓶1*6纸箱手提"
    }
    {
        "productName":"雪花勇闯天涯普啤8度500ml白瓶1*12纸箱活动版",
        "productNameSuggester":"雪花勇闯天涯普啤8度500ml白瓶1*12纸箱活动版"
    }

    post请求:http://127.0.0.1:9200/custom/doc/_search

    {
      "_source":false,// ["productNameSuggester","productName"] 不返回_source
      "suggest": {
        "my-suggest-1": {
          "text": "雪",//用户输入文本
          "completion": {
            "field": "productNameSuggester",//字段
            "size": 2,//显示条数
            "skip_duplicates": true//建议去重
          }
        }
      }
    }

    返回结果

    {
        "took": 1,
        "timed_out": false,
        "_shards": {
            "total": 5,
            "successful": 5,
            "skipped": 0,
            "failed": 0
        },
        "hits": {
            "total": 0,
            "max_score": 0,
            "hits": []
        },
        "suggest": {
            "my-suggest-1": [
                {
                    "text": "雪",
                    "offset": 0,
                    "length": 1,
                    "options": [
                        {
                            "text": "雪花勇闯天涯普啤8度500ml白瓶1*12纸箱活动版",
                            "_index": "custom",
                            "_type": "doc",
                            "_id": "1",
                            "_score": 1
                        },
                        {
                            "text": "雪花纯生8度500ml统一标准专用白瓶1*6纸箱手提",
                            "_index": "custom",
                            "_type": "doc",
                            "_id": "2",
                            "_score": 1
                        }
                    ]
                }
            ]
        }
    }

    设置权重

    input为保存的值 weight为权重(_score)如果是数组使用[{"input":""},{"input":""}]

    {
        "productName":"雪花纯生8度500ml统一标准专用白瓶1*6纸箱手提",
        "productNameSuggester":{"input":"雪花纯生8度500ml统一标准专用白瓶1*6纸箱手提","weight" : 34}
    }
  • 相关阅读:
    django控制台输出sql日志
    Find概述
    命令大全
    京东智联云在 Serverless 的探索
    如何优雅地部署一个 Serverless Next.js 应用
    腾讯云 Serverless 保障《创造营》硬糖少女 C 位出道
    Serverless 应用实践及典型案例解析
    LeetCode 数组:62. 不同路径(动态规划 带记忆的递归)
    LeetCode 数组:56.合并区间(数组的自带排序函数 区间合并问题)
    LeetCode 数组:162. 寻找峰值(二分法)
  • 原文地址:https://www.cnblogs.com/LQBlog/p/10552245.html
Copyright © 2011-2022 走看看