Elastcsearch NEST 客户端总是使用 PUT http 方法而不是 POST

问题描述

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

我注意到我的索引请求正在使用 PUT http 方法请求,这可能表明为什么 Id 没有自动生成。 我的问题是如何将 nesT 客户端配置为使用 POST http 方法而不是 PUT?

解决方法

这是一个疯狂的猜测,但您可能希望全局(或针对特定类型)禁用 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);

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...