【问题标题】:Elastcsearch NEST client is always using PUT http method instead of POSTElasticsearch NEST 客户端始终使用 PUT http 方法而不是 POST
【发布时间】:2021-01-19 14:23:22
【问题描述】:

我正在尝试使用 ES NEST 客户端为我的文档编制索引,并希望它们具有唯一的索引文档 ID。为此,我使用管道处理器从我的模型中删除 Id 字段。 但是,id在ES端总是存储为0。

我注意到我的索引请求正在使用 PUT http 方法请求,这可能表明 Id 未自动生成的原因。 我的问题是如何配置 NEST 客户端以使用 POST http 方法而不是 PUT?

【问题讨论】:

  • 您使用的是哪个版本的 NEST?

标签: c# elasticsearch nest


【解决方案1】:

这是一个疯狂的猜测,但您可能希望全局禁用 Id 推断(或针对特定类型)https://www.elastic.co/guide/en/elasticsearch/client/net-api/current/ids-inference.html#_disabling_id_inference

WithConnectionSettings(x => x
    .DefaultMappingFor<MyOtherDTO>(m => m
        .DisableIdInference()
    )
).Expect(null).WhenInferringIdOn(dto);
WithConnectionSettings(x => x.DefaultDisableIdInference())
    .Expect(null).WhenInferringIdOn(dto);

【讨论】:

    猜你喜欢
    • 2017-12-22
    • 2015-02-19
    • 2010-10-28
    • 2012-09-23
    • 2023-03-30
    • 1970-01-01
    • 2015-04-24
    • 2013-03-31
    • 2020-12-22
    相关资源
    最近更新 更多