私はElasticSearch 2.3とASP.NET Webアプリケーションを使用しています。 C#HttpClient
を使用してREST APIを通じてElasticSearchを呼び出しています。ElasticSearchクエリの結果はキャッシュされますか?
新しい値を配列に追加しようとすると問題が発生します。
ステップ1:ここでは
は、基本的に私が行っていたクエリだ
POST /notes/note/_search
{
"query" : {
"term" : { "_id" : 1 }
}
}
のみ1ノートあります注意して取得し、その結果、ノートが添付ファイルの空の配列を含んでいることを示して
ステップ2:メモの添付ファイルの配列を更新する
POST: /notes/note/1/_update
{
"doc" : {
"Attachments" : [ "Test" ]
}
}
ステップ3:Get結果はノートはまだ空の添付ファイルの配列が含まれていることを示して再び
POST: /notes/note/_search
{
"query" : {
"term" : { "_id" : 1 }
}
}
に注意してください。
しかし、私がKibanaのSearch/MatchAllを実行すると、Attachments配列が新しい項目で更新されていることがわかります。しかし、ASP.NETからこれらのステップをすべて実行すると、アップデート直後に直ちにそれを検索するときに、更新されたドキュメントが取得されません。
これは何らかのキャッシュによって引き起こされますか?
更新が実行された後に文書の一貫性のある状態を取得するにはどうすればよいですか?
ありがとう
つまり、ElasticSearchを使用する最良の方法は、挿入または更新クエリの直後にドキュメントのインデックスを作成したり、インデックスを再作成することを期待しないようにアプリケーションを設計することです。あれは正しいですか ? – TchiYuan
正しいTchi元 –