C# 对象内的id字段,用于elasticsearch的嵌套
因此,我有一个带有C# 对象内的id字段,用于elasticsearch的嵌套,c#,
elasticsearch,nest,C#,
elasticsearch,Nest,因此,我有一个带有Id字段的对象;当我为其编制索引时,结果文档具有预期的\u source.id字段,但\u id字段的值与\u source.id相同 例如,我有一个对象: var obj = new Obj { ... Id = 'some_value', ... }; 索引后,我看到ES文档如下所示: { ... "_id: "some_value", ... "_source" : { ... "i
Id
字段的对象;当我为其编制索引时,结果文档具有预期的\u source.id
字段,但\u id
字段的值与\u source.id
相同
例如,我有一个对象:
var obj = new Obj {
...
Id = 'some_value',
...
};
索引后,我看到ES文档如下所示:
{
...
"_id: "some_value",
...
"_source" : {
...
"id" : "some_value",
...
}
}
问题是:是否有可能以某种方式禁用此行为?例如,如何让Elasticsearch为
\u id
(如果可能)生成值?这是一个称为的功能。如果你不想这样做,我也会推荐
- 将POCO上的
属性重命名为其他内容Id
- 使用
属性POCO,并将不存在的属性名称分配给ElasticsearchType
IdProperty
[ElasticsearchType(IdProperty=“do\u not\u expert\u id”)]
公共类MyDocument
{
公共int Id{get;set;}
}
您是如何为数据编制索引的?通常是默认值,让客户端推断映射,例如:client.IndexDocumentAsync(obj)
它取决于您使用的库的实现。是哪一个?我用的是NEST 6.0.2