在我的ElasticSearch数据库中,我需要从插入查询中获取自动生成的ID(我使用.NET C#)。怎么做?我尝试调试readRecords响应,但我没有找到这样的id。
基本上我需要相当于MySQL LAST_INSERT_ID()
命令。
var readRecords = elasticClient.Search<HistoryRecord>(s => s
.Index(elasticIndexName)
.Filter(f =>
f.Term(t => t.MacAddr, historyRecord.MacAddr) &&
f.Term(t => t.GroupName, historyRecord.GroupName) &&
f.Term(t => t.GroupNo, historyRecord.GroupNo) &&
f.Term(t => t.InstrType, historyRecord.InstrType) &&
f.Term(t => t.InstrumentAddress, historyRecord.InstrumentAddress) &&
f.Term(t => t.InstrumentName, historyRecord.InstrumentName) &&
f.Term(t => t.UhhVersion, historyRecord.UhhVersion))).Documents
答案 0 :(得分:2)
您可以通过查看ISearchResponse
集合中的对象而不是Hits
集合,从Documents
(基于您的代码示例)中找到ID值。每个Hit
都有一个Id
属性。
在原始索引调用中(假设您单独执行此操作 - 而不是通过_bulk
端点),您可以从IIndexResponse
的{Id
{{{{{{ 1}}属性。