ElasticSearch - 如何从插入查询中获取自动生成的 ID
ElasticSearch - how to get the auto generated id from an insert query
在我的 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
您可以通过查看 Hits
集合中的对象而不是 Documents
集合中的对象,从 ISearchResponse
(基于上面的代码示例)中找到 id 值。每个 Hit
都有一个 Id
属性.
在原始索引调用中(假设您是单独执行的——而不是通过 _bulk
端点),您可以从 IIndexResponse
中获取新索引文档的 ID Id
属性.
在我的 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
您可以通过查看 Hits
集合中的对象而不是 Documents
集合中的对象,从 ISearchResponse
(基于上面的代码示例)中找到 id 值。每个 Hit
都有一个 Id
属性.
在原始索引调用中(假设您是单独执行的——而不是通过 _bulk
端点),您可以从 IIndexResponse
中获取新索引文档的 ID Id
属性.