Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 对象内的id字段,用于elasticsearch的嵌套_C#_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Nest - Fatal编程技术网 elasticsearch,nest,C#,elasticsearch,Nest" /> elasticsearch,nest,C#,elasticsearch,Nest" />

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
    属性重命名为其他内容
  • 使用
    ElasticsearchType
    属性POCO,并将不存在的属性名称分配给
    IdProperty
[ElasticsearchType(IdProperty=“do\u not\u expert\u id”)]
公共类MyDocument
{
公共int Id{get;set;}
}

您是如何为数据编制索引的?通常是默认值,让客户端推断映射,例如:
client.IndexDocumentAsync(obj)
它取决于您使用的库的实现。是哪一个?我用的是NEST 6.0.2