c# - 如何在NEST 2.0中设置文档名称

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

我有一个使用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/

相关文章:

dependency-injection - 如何设置 Ninject DI 以创建 Hyprlinkr RouteLinker 实例

具有关联的 RESTful Web API。是否可以?

symfony - 在symfony2上使用 Elasticsearch (FOSElasticaBundle)索引计算的字段

c# - 如何拦截 Windows 窗体 WebBrowser 控件中的刷新?

java - Android http post 到 ASP.NET Web API 不插入数据

c# - 尝试在 Azure 函数中创建实体失败,错误代码为 "Method not found"

elasticsearch - 如何获取top_hits聚合中的字段

elasticsearch - 在 Elasticsearch 中搜索文本忽略大写和小写字母

c# - C# 中的事件或 Lambda?

javascript - 保存到/更新 MVC 5 中 Content 文件夹中的现有文件?