autocomplete - Elasticsearch自动完成其余的词

标签 autocomplete elasticsearch

我有一个用于 Elasticsearch 的自动完成功能的工作版本。但是,一个问题是,如果我搜索xbox360。我会得到xbox 360和xbox 1作为可能的建议。

我希望建议仅考虑在建议之前一直包含整个查询的建议。例如,如果我输入xbox 3,则 Elasticsearch 永远不要返回xbox 1,而只能返回xbox 360。

我的查询针对_suggestions端点运行。
我的配置如下。

{
    "mappings": {
        "query" : {
        "properties" : {
             "product" : { "type" : "string" },
             "name_suggest" : {
                 "type" :     "completion"
              }
         }
}

最佳答案

我认为您正在描述完成建议。如果是这种情况,可以使用以下示例:

PUT /mymusicsuggest
{
  "settings": {
    "number_of_shards": 1,
    "number_of_replicas": 0
  },
  "mappings": {
    "album": {
      "properties": {
        "name": {
          "type": "string"
        },
        "suggest": {
          "type": "completion",
          "index_analyzer": "simple",
          "search_analyzer": "simple",
          "payloads": true
        }
      }
    }
  }
}

PUT /mymusicsuggest/album/1
{
    "name" : "Tori Amos - Little Earthquakes",
    "suggest" : {
        "input": [ "earthquakes", "little", "tori", "amos" ],
        "output": "Tori Amos - Little Earthquakes",
        "payload" : { "songs" : ["11861","11839","11849","11853","11841", "11847","11851","11845","11855","11843","11859","11857"] },
        "weight" : 10
    }
}

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-suggesters-completion.html

关于autocomplete - Elasticsearch自动完成其余的词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22547399/

相关文章:

java - 带有组合框的 AutoCompleteDecorator

angular - 如何在焦点上显示自动完成选项

sql - Redgate SQL Prompt 等效于 PostgreSQL 数据库

javascript - jQuery onchange 事件,如何忽略过于频繁的更改?

Elasticsearch 7.x 断路器 - 数据过大 - 故障排除

c# - C# Elasticsearch 查询,匹配多个查询

html - Chrome/Firefox 自动完成=新密码不起作用

ElasticSearch文档说用户请求不使用scroll,只用于数据转换

elasticsearch - Elasticsearch没有可用的磁盘空间

elasticsearch - 如何在Elasticsearch中对多值字段进行桶聚合