2017-12-26 31 views
1

Elasticsearchでは、1,000,000件のドキュメントの50個のフィールドまたは50,000,000個のドキュメントの1個のフィールドを照会する方がよいでしょう。私は一例で私の問題を説明します:照会する「F1」から「F50」から実行されます。ここパフォーマンス最適化のためのElasticsearchドキュメント構造

doc1: { 
    "f1": "abc", 
    "f2": "pqr", 
    "f3": "lmn", 
    ... 
    "f50": "xyz" 
} 

:ケース1の場合

は、私たちのドキュメントは次のようになります。ケース2の場合

、私たちのドキュメントは、次のようになります。

doc1.1: { 
    "f": "abc" 
} 

doc1.2: { 
    "f": "pqr" 
}  

doc1.3: { 
    "f": "lmn" 
} 
... 
... 
doc1.50: { 
    "f": "xyz" 
} 

のは、ちょうど私が関係なく、フィールドの照会値を含むドキュメントが心配ですとしましょう。

+0

私はあなたが権威ある答えを得ることができるとは思わないほど多くの未知数(シャードの数、ノードの数、キャッシュ可能なフィルタです...)があります。 IMOこれは、それほど大きな違いはなく、あなたはそれを思い知らされないほど小さくなければなりません。それを構築して、それが爆発したり遅くなったりする場合は、リファクタリングについて考えてみてください。数GBのデータを持ち、定期的なクエリを使用するだけであれば、必要ではありません。 – xeraa

答えて

0

私は50万件のドキュメントアプローチを採用します。 ElasticSearchは、適切なハードウェア(自己経験)で簡単にそのサイズを処理することができ、クエリやデータ操作がずっと簡単になります。

+1

質問するのが簡単になる理由を説明してください。 – demas

+1

私は簡単に彼が50フィールドではなく1つのフィールドのクエリ/マッピングを書く必要があることを意味すると思います。 –

関連する問題