NEST 2.0如何设置文档名称
How to set document name in NEST 2.0
我有一个 Dictionary<string, object>
正在使用 NEST 2.0 库插入到 ElasticSearch 2.0 中。
默认文档名称是Dictionary'2
。我不知道为什么 NEST 选择这个名字,但我想要一些更明智的东西,比如“DataRecord
”
如何设置文档名称?
第二种选择是创建一个空的包装器class,但它似乎有点矫枉过正
我认为最简单的方法是在 ConnectionSettings
上定义默认类型名称。
var settings = new ConnectionSettings()
.DefaultIndex(indexName)
.MapDefaultTypeNames(dictionary => dictionary.Add(typeof(Dictionary<string,object>), "yourTypeName"))
.DisableDirectStreaming()
.PrettyJson();
var client = new ElasticClient(settings);
使用这种方法,您不必在索引文档或搜索时费心输入类型名称。
如果您需要更多 "control" 过程,您可以在调用 elasticsearch 时只输入类型参数,但您必须在所有地方记住此参数。
var indexResponse = client.Index(new Dictionary<string, object>
{
{"asd", 1}
}, descriptor => descriptor.Type("yourTypeName"));
我有一个 Dictionary<string, object>
正在使用 NEST 2.0 库插入到 ElasticSearch 2.0 中。
默认文档名称是Dictionary'2
。我不知道为什么 NEST 选择这个名字,但我想要一些更明智的东西,比如“DataRecord
”
如何设置文档名称?
第二种选择是创建一个空的包装器class,但它似乎有点矫枉过正
我认为最简单的方法是在 ConnectionSettings
上定义默认类型名称。
var settings = new ConnectionSettings()
.DefaultIndex(indexName)
.MapDefaultTypeNames(dictionary => dictionary.Add(typeof(Dictionary<string,object>), "yourTypeName"))
.DisableDirectStreaming()
.PrettyJson();
var client = new ElasticClient(settings);
使用这种方法,您不必在索引文档或搜索时费心输入类型名称。
如果您需要更多 "control" 过程,您可以在调用 elasticsearch 时只输入类型参数,但您必须在所有地方记住此参数。
var indexResponse = client.Index(new Dictionary<string, object>
{
{"asd", 1}
}, descriptor => descriptor.Type("yourTypeName"));