Solrを使用して1000万行のデータをソートし、limitを使用してそれらの一部を取得したいとします。Apache Solrはどのアルゴリズムをソートに使用しますか?
select * from table sort by click limit 0,10
Solrはどのソートアルゴリズムを使用していますか?クイックソート?バブルソート?または他の何か?
Solrを使用して1000万行のデータをソートし、limitを使用してそれらの一部を取得したいとします。Apache Solrはどのアルゴリズムをソートに使用しますか?
select * from table sort by click limit 0,10
Solrはどのソートアルゴリズムを使用していますか?クイックソート?バブルソート?または他の何か?
何百万もの値をソートする必要のあるシステムでは、Bubble SortやO(n^2)のアルゴリズムをベースとして使用するシステムはないと思います。
Lucene(現在はDocValuesを使用)は、主に同じアルゴリズムのPython実装から適合したTimsortの実装を使用しています。これは、最近のバージョンのJDKで使用されているのと同じアルゴリズムです。
Timsortは、マージソートと挿入から派生したハイブリッド安定ソートアルゴリズムです。多くの種類の実世界データでうまく機能するように設計されています。
独自の実装ではなく、TimsortのJDKバージョンに切り替える必要があります。
Luceneが持つ異なるソートアルゴリズムのソースはis available in core/src/java/org/apache/lucene/utilです。