2

エラスティックサーチを最適化しようとしています。クエリを使用するブール値フィールドがいくつかあります。それらを省くこともできますが、そうするとクライアント側が苦労することになります。

"index":"yes"私の質問は、これらのフィールドを に設定すると、インデックス作成の時間やサイズなど、インデックスのパフォーマンスに実際に重大な悪影響があるかどうかです (明らかな「ストア」スペースを除いて)。

ブール値のインデックス付きフィールドは本当により多くのスペースを占有しますか? すべきではないようです。さらに、elasticsearch だけでなく、任意の DB に対してそのようなインデックスを作成しても、何のメリットもありません。

しかし、それで"index":"yes"フィルタリングできるように指定する必要がありますよね?

4

1 に答える 1

2

フィールドに対して検索する場合は、インデックスを作成する必要があります。デフォルトでは、booleanフィールドは索引付けされており、そのために少量のスペースが必要です。"myfield": trueとのドキュメントのリストが表示されます"myfield": false

このインデックスを維持したくない場合は"myfield": true、フィールドをチェックするためにすべてのドキュメントを調べなければならないドキュメントを見つけたいとき。

そのフィールドで検索/フィルタリングしたくない場合は、必ず set"index": "no"を使用してください。将来、このフィールドについて気が変わった場合は、すべてを再インデックスする必要があることに注意してください!

マッピングに関するelasticsearchのドキュメントをご覧ください。コア タイプ セクションで、ブール型まで下にスクロールします。

于 2013-06-13T15:52:46.253 に答える