如何在NEST 2.0

时间:2016-03-16 17:33:49

标签: c# asp.net-web-api elasticsearch nest nest2

我有一个Dictionary<string, object>使用NEST 2.0库插入ElasticSearch 2.0。

默认文档名称为Dictionary'2。我不知道为什么NEST会选择这个名字,但我想要一些更明智的东西,比如“DataRecord

如何设置文档名称?

第二个选项是创建一个空的包装类,但它似乎有点矫枉过正

1 个答案:

答案 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