我有一个Dictionary<string, object>
使用NEST 2.0库插入ElasticSearch 2.0。
默认文档名称为Dictionary'2
。我不知道为什么NEST会选择这个名字,但我想要一些更明智的东西,比如“DataRecord
”
如何设置文档名称?
第二个选项是创建一个空的包装类,但它似乎有点矫枉过正
答案 0 :(得分:1)
我认为最简单的方法是在var settings = new ConnectionSettings()
.DefaultIndex(indexName)
.MapDefaultTypeNames(dictionary => dictionary.Add(typeof(Dictionary<string,object>), "yourTypeName"))
.DisableDirectStreaming()
.PrettyJson();
var client = new ElasticClient(settings);
上定义默认类型名称。
var indexResponse = client.Index(new Dictionary<string, object>
{
{"asd", 1}
}, descriptor => descriptor.Type("yourTypeName"));
使用这种方法,无论何时索引文档或搜索,都不必为输入类型名称而烦恼。
如果你需要对进程有更多的“控制”,你可以在调用elasticsearch时输入type参数,但是你必须记住所有地方的这个参数。
$obj = Get-WmiObject -ComputerName otherServer -Class win32_printerdriver | Where-Object name -like "*PCL 5,3*"
$obj |Remove-WmiObject