使用 nest 的 elasticsearch 自动完成映射

elasticsearch autocompletion mapping using nest

我正在使用 nest 在 .net 中实现 elasticsearch,我是新手。我正在尝试映射建议者,请帮助我。如何使用 nest

在 C# 中做到这一点
curl -X PUT localhost:9200/songs/song/_mapping -d '{
    "song" : {
        "properties" : {
            "name" : { "type" : "string" },
            "suggest" : { "type" : "completion",
                "index_analyzer" : "simple",
                "search_analyzer" : "simple",
                "payloads" : true
            }
        }
    }
}'

在下面找到完整的代码。它创建一个新的 ElasticClient 对象,然后将映射 song 添加到索引 songs。在执行此代码之前,请确保索引 songs 已经存在。无论如何,您也可以在通过代码创建映射之前创建索引 songs。我会把它留给你弄清楚。查找有关如何在 Nest here.

中创建映射的详尽示例
var client = new ElasticClient(new ConnectionSettings(new Uri("http://localhost:9200")));

var response = client.Map<object>(d => d
    .Index("songs")
    .Type("song")
    .Properties(props => props
        .String(s => s
            .Name("name"))
        .Completion(c => c
            .Name("suggest")
            .IndexAnalyzer("simple")
            .SearchAnalyzer("simple")
            .Payloads())));

Debug.Assert(response.IsValid);