インデックスソートを使用して接続を高速化する
インデックスソートは、LuceneのドキュメントID(_id
と混同しないでください)を、接続(a AND b AND …)をより効率的にする方法で整理するために役立ちます。効率的であるためには、接続は、いずれかの節が一致しない場合、全体の接続が一致しないという事実に依存しています。インデックスソートを使用することで、一致しないドキュメントをまとめて配置でき、接続に一致しない大規模なドキュメントIDの範囲を効率的にスキップするのに役立ちます。
このトリックは、低カーディナリティのフィールドでのみ機能します。一般的なルールとして、低カーディナリティでフィルタリングに頻繁に使用されるフィールドで最初にソートするべきです。ソート順(asc
またはdesc
)は、同じ節に一致する値を近くに配置することにのみ関心があるため、重要ではありません。
たとえば、販売用の車をインデックス化する場合、燃料タイプ、ボディタイプ、メーカー、登録年、最後に走行距離でソートすることが興味深いかもしれません。