ElasticSearch:写入后立即查询数据

本文关键字:查询 数据 ElasticSearch | 更新日期: 2023-09-27 18:20:38

我有一个要求,在写入ES后,能够立即按键读取数据。这可能吗?注意,DataMap是键值对,而_id是到密钥字段的路径。

string v = "Foobar" + i;
string k = Security.Hash(Encoding.UTF8.GetBytes(v));
var data = new DataMap { Key = k, Value = v };
var index = _esclient.Index(data);
// fetch by k
var results = _esclient.Search<DataMap>(p => p
        .Size(1000)
        .Fields(f => f.Key, f => f.Value)
        .Query(q => q.Term("key", k))
        );
// Make sure the record is found
if (!results.Hits.Any())
{
    Console.WriteLine("{0} {1} not found", k, v);
}

ElasticSearch:写入后立即查询数据

是。GET API是实时的,即使索引尚未刷新,它也会在收到文档后立即通过_id返回文档。

请注意,为Elasticsearch提供唯一的_id可能更简单,而不是让它为您生成一个。否则,您将不得不读取索引操作的响应,以了解文档的_id