如何使用完成字段索引对象

时间:2015-01-23 16:09:41

标签: elasticsearch nest

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

如何使用Nest客户端库索引 / 插入(我可以映射)一个对象,以便能够提供以下选项:

"input": ...,
"output": ...,
"payload" : ...,
"weight" : ...

我希望能够在'输入'中提供多个值。选项。 无论如何都无法使用NEST进行此操作。

谢谢

1 个答案:

答案 0 :(得分:4)

NEST提供SuggestField类型,以协助索引完成建议。您不一定需要使用此类型,您可以提供自己的类型包含预期的完成字段(inputoutput等...),但SuggestField的目的是通过提供烘焙类型使整个过程更容易。

<强>用法:

将建议字段添加到要编制索引的文档/类型中:

public class MyType
{
    public SuggestField Suggest { get; set; }
}

您的映射应如下所示:

client.Map<MyType>(m => m
    .Properties(ps => ps
        .Completion(c => c.Name(x => x.Suggest).Payloads(true))
    )
);

索引示例:

var myType = new MyType
{
    Suggest = new SuggestField
    {
        Input = new [] { "Nevermind", "Nirvana" },
        Output = "Nirvana - Nevermind",
        Payload = new { id = 1234 },
        Weight = 34
    }
};

client.Index<MyType>(myType);

希望有所帮助。