2017-04-26 3 views
0

Luceneにセグメントを順番に固定サイズで書き込むように指示できますか?このようにして、大きなセグメントでは重いマージを回避します。 Luceneには、同様の機能を持つLogMergePolicyクラスがあり、最大セグメントサイズをドキュメント数またはファイルサイズで設定できますが、これは単なるマージの制限です。固定サイズのシーケンシャルセグメットでLuceneのマージをオフにする

答えて

0

NRTCachingDirectoryを使用してメモリ内の小さなセグメントマージを行い、〜256MiB程度に達するとディスクに書き出すことができます。

しかし、FSTのようなデータ構造は追記型であり、新しいものを作成することによって変更されるため、基本的にマージが必要です。

これは、FilesystemDirectoryのNoMergePolicyと組み合わせて、それ以上のマージを実行しないことがあります。しかし、それはかなり悪いクエリのパフォーマンスを持っています。

はたぶん行うには、一度にすべてをマージし、手動で何とかマージ(設定することにより、TieredMergePolicy.setMaxMergeAtOnceExplicit())

しかし、マージは、単にビジネスを行うコスト、おそらくより良いが、それに慣れるし、チューニングMergePolicyにありますあなたの仕事量。

+0

データの損失の可能性があるため、セグメントをRAMに書き込むことはできません。私の場合、データは決して変更されないログなので、マージを避けるとパフォーマンスが向上します。 – cybersoft

関連する問題