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 を Elasticsearch に提供する方が簡単な場合があることに注意してください。それ以外の場合は、インデックス作成操作からの応答を読み取って_id、ドキュメントの を知る必要があります。

于 2014-09-05T01:32:52.943 に答える