我有这样定义我的poco类型类:
[Elastictype(Name="doc", IdProperty="Id")]
public class Doc{
public string Id;
public string Name;
....
}
但是,尽管id属性确实保存在文档中,但它仍会在我的.Index()请求中生成随机哈希ID。
无论是否定义了Elastictype,我都尝试过,结果仍然相同。
我能够使它工作的唯一方法是在.Index请求中显式设置定义ID,但我无法在批量操作中找到它。有人可以告诉我为什么NEST无法识别我的POCO ID以及如何启用它吗?或者如何在批量请求中显式设置ID?
最佳答案
您可以在批量操作期间明确设置ID。过去,我成功使用了以下内容:
var docs = new List<Doc>();
var bulkDescriptor = new BulkDescriptor;
// assumes that docs has been populated...
foreach(var doc in docs)
{
bulkDescriptor.Index<Doc>(op => op.Object(doc).Id(doc.Id));
}
//assumes using an already defined ElasticsearchClient
var response = Client.Bulk(descriptor => bulkDescriptor);
关于c# - 找不到POCO ID属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26097400/