elasticsearch - 如何创建具有多个权重不同的输入的CompletionField?

标签 elasticsearch autocomplete

对于单个输入建议列表,以下代码有效:

     var completionField = new CompletionField

     {
         Input = completionList,
         Weight = weight

     };

     this.Suggest = completionField;

但是我希望有多个具有不同权重的建议列表,并且能够搜索单个完成字段。我不确定如何在Nest中完成此操作。

我确实看到了它的支持:
PUT music/song/1?refresh
{
    "suggest" : [
        {
            "input": "Nevermind",
            "weight" : 10
        },
        {
            "input": "Nirvana",
            "weight" : 3
        }
    ]
}

最佳答案

如果您这样定义完成字段:

[Completion]
public List<CompletionField> Suggest { get; set; }

并提供完成字段列表(如果需要,可以使用不同的权重),您将在索引中得到以下内容。
"suggest": [
  {
    "input": [
      "higherweightedterm"
    ],
    "weight": 1000
  },
  {
    "input": [
      "lowerweightedterm"
    ],
    "weight": 100
  }
]

关于elasticsearch - 如何创建具有多个权重不同的输入的CompletionField?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46457002/

相关文章:

elasticsearch - flink-kafka-elasticsearch部署在 yarn 上

elasticsearch - Elastic Search Bulk 忽略 json 中提供的最后一个操作

elasticsearch - Elasticsearch完成提示中的数组输入

objective-c - 在 UISearchBar 中搜索时自动完成

Mac OX 上的 Android Eclipse xml 编辑器自动完成功能无法正常工作

jquery - 通过自动完成禁用区分大小写

vim - VIM:函数名称带有参数的自动完成

Elasticsearch 相当于具有多个字段的 SQL In Query

java - Java中的ElasticSearch

javascript - 使用 React 组件自动完成