升级到弹性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;
}
答案 0 :(得分:5)
ElasticClient.Raw
已重命名为ElasticClient.LowLevel
。
这是您在NEST 2.x中撰写请求的方法。
_elastic.Client.LowLevel.IndicesCreate<object>(indexName, File.ReadAllText("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"
}
}
}
}
}
}
希望它有所帮助。