elasticsearch Suggester实现智能提示(八)

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}
}

原文地址:https://www.cnblogs.com/LQBlog/p/10552245.html

时间: 2025-01-17 13:35:47

elasticsearch Suggester实现智能提示(八)的相关文章

搜索引擎关键字智能提示的一种实现

问题背景 搜索关键字智能提示是一个搜索应用的标配,主要作用是避免用户输入错误的搜索词,并将用户引导到相应的关键词上,以提升用户搜索体验. 美团CRM系统中存在数以百万计的商家,为了让用户快速查找到目标商家,我们基于solrcloud实现了商家搜索模块.用户在查找商家时主要输入商户名.商户地址进行搜索,为了提升用户的搜索体验和输入效率,本文实现了一种基于solr前缀匹配查询关键字智能提示(Suggestion)实现. 需求分析 支持前缀匹配原则 在搜索框中输入"海底",搜索框下面会以海底

Solr 智能提示(suggest)

电商搜索中要实现这么一块功能,当输入文字时候,下拉框提示.类似于百度搜索 在师出名门的基于lucene的solr搜索引擎中.提供了 拼写检查和智能提示这块功能.   拼写检查就是用来检查用户输入的检索内容是否存在,如果不存在则,给它提示出相近,或相似的内容.   而检索建议则是用户输入某个检索条件后,会立刻友好的给出一系列提示内容,并推荐首个出现的相似的词,作为推荐词. 也就是说 拼写检查是可以作为一个单独功能使用,但suggest一般引用拼写检查组件 实现过程,配置solrconfig.xml

智能提示(一) Solr (suggest)

电商搜索中要实现这么一块功能,当输入文字时候.下拉框提示.类似于百度搜索 在师出名门的基于lucene的solr搜索引擎中.提供了 拼写检查和智能提示这块功能.   拼写检查就是用来检查用户输入的检索内容是否存在,假设不存在则,给它提示出相近,或相似的内容.   而检索建议则是用户输入某个检索条件后.会立马友好的给出一系列提示内容,并推荐首个出现的相似的词,作为推荐词. 也就是说 拼写检查是能够作为一个单独功能使用,但suggest一般引用拼写检查组件 实现过程.配置solrconfig.xml

美团搜索-搜索引擎关键字智能提示的一种实现[转]

http://tech.meituan.com/pinyin-suggest.html --------------------------------------------------------------------- 快照: 问题背景 搜索关键字智能提示是一个搜索应用的标配,主要作用是避免用户输入错误的搜索词,并将用户引导到相应的关键词上,以提升用户搜索体验. 美团CRM系统中存在数以百万计的商家,为了让用户快速查找到目标商家,我们基于solrcloud实现了商家搜索模块.用户在查找商

10 行 Python 代码实现模糊查询/智能提示

10 行 Python 代码实现模糊查询/智能提示 1.导语: 模糊匹配可以算是现代编辑器(如 Eclipse 等各种 IDE)的一个必备特性了,它所做的就是根据用户输入的部分内容,猜测用户想要的文件名,并提供一个推荐列表供用户选择. 样例如下: Vim (Ctrl-P) Sublime Text (Cmd-P) '模糊匹配'这是一个极为有用的特性,同时也非常易于实现. 2.问题分析: 我们有一堆字符串(文件名)集合,我们根据用户的输入不断进行过滤,用户的输入可能是字符串的一部分.我们就以下面的

如何让vue文件中的代码在Sublime Text 3中高亮和智能提示

大家写在Sublime Text 3中编写vue文件时,会发现没有代码智能提示,清一色的黑底白字,不会像html.js一样变成彩色,给我们带来了很大的不便.所以需要安装一款叫作Vue Syntax Highlight的插件,它不仅可以使代码高亮起来,还能进行代码智能提示.那怎样安装呢?分为以下几步: 安装Package Control 执行Install Package 安装Vue Syntax Highlight

Visual Studio 2013 智能提示

Visual Studio 2013中,智能提示功能突然用不了,查了一下,使用命令行重置VS的方法解决了这个问题.步骤如下: 开始菜单 -->所有程序-->Visual Studio 2013文件夹 --> Visual Studio Tools --> Developer Command Prompt for VS2013 输入DOS命令: CD Common7/IDE 进入到该工具下的子文件夹中 输入:devenv.exe /resetsettings ,重置Visual St

Eclipse设置智能提示

1.java智能提示 (1). 打开Eclipse,选择打开" Window - Preferences". (2). 在目录树上选择"Java-Editor-Content Assist",在右侧的"Auto-Activation"找到"Auto Activation triggers for java"选项.默认触发代码提示的就是"."这个符号. (3). 在"Auto Activation

Eclipse for android 实现代码自动提示智能提示功能

Eclipse for android 实现代码自动提示智能提示功能,介绍 Eclipse for android 编辑器中实现两种主要文件 java 与 xml 代码自动提示功能,解决 eclipse 代码提示失效.eclipse 不能自动提示.eclipse 没有代码提示的问题. 1.设置 java 文件的代码提示功能 打开 Eclipse 依次选择Window > Preferences > Java > Editor - Content Assist > Auto acti