我想使用NEST .Net库进行批量插入以进行 flex 搜索。但是我不想将我的ID存储在文档中。

通过一次插入,我可以使用.Id()函数设置Id不在我的Type中的ID。

有没有办法用IndexMany函数来做到这一点?

还是将ID不存储在文档中是一种不好的做法?除了精确搜索外,我不使用其他ID。为什么要存储两次?

最佳答案

您还可以使用批量设置自己的ID:

var descriptor = new BulkDescriptor();
foreach (var i in Enumerable.Range(3000, 1000))
    descriptor.Index<Doc>(op => op.Document(new Doc {}).Id(i));

var result = this._client.Bulk(d=>descriptor);

如果您要依赖Elasticsearch生成的ID,请不要指定.Id()或使用.Id(null)使其强制为null

10-05 22:33
查看更多