我要求在写入 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);
}
最佳答案
是的。 GET
API 为 realtime并将通过其 _id
返回一个文档收到后立即,即使索引尚未刷新。
请注意,向 Elasticsearch 提供唯一的 _id 可能会更简单,而不是让它为您生成一个。否则,您必须阅读索引操作的响应才能了解 _id
的文件。
关于c# - ElasticSearch:写入后立即查询数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25673978/