升级到Elastic 2.3.1时,我遇到了.Net Nest Client的困扰。
在Nest 1.0中,我可以从文件中读取索引的设置,并使用原始字符串在创建时配置索引。有什么办法可以解决Nest 2.0中的类似问题,还是我必须对包括分析部分在内的每个设置都使用流畅的API?映射同样的问题。
Nest 1.0
private bool CreateIndex(string index, FileInfo settingsFile) { var settings = File.ReadAllText(settingsFile.FullName); IElasticsearchConnector _elastic var response = _elastic.Client.Raw.IndicesCreate(index, settings); if (!response.IsValid) { //Logging error return false } return true; }
ElasticClient.Raw已重命名为ElasticClient.LowLevel。
ElasticClient.Raw
ElasticClient.LowLevel
这是您可以在NEST 2.x中编写请求的方式。
_elastic.Client.LowLevel.IndicesCreate<object>(indexName, File.ReadAllText("index.json"));
index.json文件内容:
index.json
{ "settings" : { "index" : { "number_of_shards" : 1, "number_of_replicas" : 1 }, "analysis" : { "analyzer" : { "analyzer-name" : { "type" : "custom", "tokenizer" : "keyword", "filter" : "lowercase" } } }, "mappings" : { "employeeinfo" : { "properties" : { "age" : { "type" : "long" }, "experienceInYears" : { "type" : "long" }, "name" : { "type" : "string", "analyzer" : "analyzer-name" } } } } } }
希望能帮助到你。