1

我要求在写入 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);
}
4

1 回答 1

1

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

请注意,向 Elasticsearch 提供唯一的 _id 可能会更简单,而不是让它为您生成一个。否则,您必须阅读索引操作的响应才能了解_id文档的内容。

于 2014-09-05T01:32:52.943 回答