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

时间:2017-09-27 20:49:56

标签: 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
        }
    ]
}

1 个答案:

答案 0 :(得分:1)

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

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

并提供完成字段列表(如果需要,可以使用不同的权重),您最终会在索引中找到以下内容。

"suggest": [
  {
    "input": [
      "higherweightedterm"
    ],
    "weight": 1000
  },
  {
    "input": [
      "lowerweightedterm"
    ],
    "weight": 100
  }
]