我有一个使用NEST 2.0库插入到ElasticSearch 2.0中的Dictionary<string, object>
。
默认文档名称为Dictionary'2
。我不知道为什么NEST选择这个名称,但我想使用更合理的名称,例如“DataRecord
”
如何设置文件名?
第二种选择是创建一个空的包装类,但似乎有点过大
最佳答案
我认为最简单的方法是在ConnectionSettings
上定义默认类型名称。
var settings = new ConnectionSettings()
.DefaultIndex(indexName)
.MapDefaultTypeNames(dictionary => dictionary.Add(typeof(Dictionary<string,object>), "yourTypeName"))
.DisableDirectStreaming()
.PrettyJson();
var client = new ElasticClient(settings);
使用这种方法,您在为文档建立索引或搜索时不必费心输入类型名称。
如果您需要对过程进行更多的“控制”,则可以在调用elasticsearch时放入类型参数,但是您必须始终记住该参数。
var indexResponse = client.Index(new Dictionary<string, object>
{
{"asd", 1}
}, descriptor => descriptor.Type("yourTypeName"));
关于c# - 如何在NEST 2.0中设置文档名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36042923/