ElasticSearch NEST 客户端上的 CreateAsync 和 IndexAsync 方法有什么区别?

Aru*_*A.J 0 c# elasticsearch nest

我发现该Create()方法需要Id实体类中的一个字段,但Index()不需要它。我不明白为什么。

Rus*_*Cam 6

Elasticsearch 中的创建 API 和索引 API 之间存在根本区别;

  1. create API如果文档不存在则创建该文档,如果存在则返回错误。创建 API 请求必须在请求 URI 中包含索引、类型和 id。id字段可以从 POCO 推断出来 ,也可以在请求上显式设置。
  2. 如果文档不存在,index API将创建该文档;如果存在,则覆盖该文档。传递 id 是可选的,如果未传递 id,Elasticsearch 将为文档生成一个 id。

这种差异反映在.NET 客户端上公开的Create()和方法中。Index()