私は solrcloud 4.0 を使用していますが、セグメントのマージの設定を変更していません (デフォルトは 32 MB です)。私のインデックス サイズはわずか 18 MB ですが、管理 UI には 5 つのセグメントが表示されます。それが正しいのか、それともバグなのかわかりませんか?
2 に答える
インデックスのセグメント数は、インデックスが完全に構築されると固定されますが、インデックス作成の進行中は変化します。Lucene は、新しいドキュメントがインデックスに追加されるたびにセグメントを追加し、セグメントを頻繁にマージします。
新しいドキュメントが Lucene インデックスに追加されると、それらはすぐにディスクに書き込まれるのではなく、最初はメモリに格納されます。
たとえば、mergeFactor を 10 に設定すると、インデックスに 10 個のドキュメントが追加されるたびに、新しいセグメントがディスク上に作成されます。サイズ 10 の 10 番目のセグメントが追加されると、10 個すべてがサイズ 100 の単一のセグメントにマージされます。サイズ 100 のそのようなセグメントが 10 個追加されると、それらは 1000 のドキュメントを含む単一のセグメントにマージされます。したがって、いつでも、インデックス サイズの 10 の累乗ごとに 9 セグメントを超えることはありません。
ramBufferSizeMB
蓄積されたドキュメントの更新がこのメモリ領域 (メガバイト単位で定義) を超えると、保留中の更新がフラッシュされます。これにより、新しいセグメントを作成したり、マージをトリガーしたりすることもできます。通常、maxBufferedDocs よりもこの設定を使用することをお勧めします。maxBufferedDocs と ramBufferSizeMB の両方が solrconfig.xml に設定されている場合、いずれかの制限に達するとフラッシュが発生します。
<ramBufferSizeMB>32</ramBufferSizeMB>
参考文献:
http://www.onjava.com/pub/a/onjava/2003/03/05/lucene.html
http://docs.lucidworks.com/display/solr/IndexConfig+in+SolrConfig