私はESのより多くの "正規化された"データに対してネストされたクエリを実行するための概念証明を実行しています。ネストされたvs親/チャイルドドキュメントに関するスケーリング
> - - メール - - イベント - > - を作成 - タイプ
今、私は特定の顧客のためのイベントのリストを別のものに移動することができる状況がある
に名前を入れ子になった
カスタマーと顧客。例えば顧客Aが50件のイベント 顧客Bが5000件のイベント
私は今、顧客とクエリの何百万人と規模で、顧客B
に顧客Aからすべてのイベントを移動したいがUIでのグラフのために、この上で実行されていたです親子がより適しているか、それともネストされていなければ処理できないのでしょうか?
私の状況の賛否両論は何ですか?
http://www.elasticsearch.org/guide/reference/api/updatehtmlは0.20以降に部分的な更新が可能であることを示唆しているようです。 : "更新APIは、既存のドキュメント(単純な再帰的マージ、オブジェクトの内部マージ、コア"キー/値 "と配列の置き換え)にマージされる部分ドキュメント(0.20以降)を渡すこともサポートしています。 –
これは、インターフェイスにのみ適用されます(たとえば、エンドユーザがドキュメント全体を提供せずにフィールドを更新できるようにする)。内部的に、Luceneは_source(削除する必要があります)から削除してから再インデックスを発行します。 Luceneは最初のドキュメントの作成中に連続したブロックだけを書き込み、ランダムアクセスは書き込まないため、更新は簡単にできません。削除さえも実際には削除されず、次のマージによって削除されるまで削除されてマークされます。 – Zach
ドキュメントには、「親ドキュメントは、子を再索引付けせずに更新できます。だから、おそらく、 "親を変更する"ということは、古い子ドキュメントを削除し、新しい親のもとで同じドキュメントにインデックスを付けることを意味します。古いです。 https://www.elastic.co/guide/en/elasticsearch/guide/current/parent-child.htmlを参照してください。 –