因此,我有一个带有Id
字段的对象;当我对其进行索引时,生成的文档具有预期的_source.id
字段,但_id
字段具有与_source.id
相同的值。
例如,我有这个对象:
var obj = new Obj {
...
Id = 'some_value',
...
};
索引后,我看到ES文档是这样的:
{
...
"_id: "some_value",
...
"_source" : {
...
"id" : "some_value",
...
}
}
问题是:是否有可能以某种方式禁用此行为?像,如何让Elasticsearch为
_id
生成值(如果可能)? 最佳答案
这是称为Id inference的功能。如果您不希望NEST不这样做,我建议
Id
属性重命名为ElasticsearchType
为POCO赋予属性,并为IdProperty
分配不存在的属性名称[ElasticsearchType(IdProperty = "do_not_infer_id")]
public class MyDocument
{
public int Id { get; set; }
}