ElasticSearch.Net NEST BulkInsert在文档中没有ID

时间:2014-07-05 08:45:14

标签: elasticsearch nest

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

使用单个插入时,我可以使用.Id()函数在不属于我的类型时设置Id。

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

或者不将ID存储在文档中是不好的做法?除了精确搜索之外,我不使用Id。我为什么要存储两次?

1 个答案:

答案 0 :(得分:4)

您也可以使用批量设置自己的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);

如果您想依赖弹性搜索生成的ID,请不要使用.Id()指定.Id(null)或强制它为空