1

pageIds (UniqueKey) に従って索引付けされた Lucene ファイルがあります。1 つのドキュメントに複数のページを含めることができます。ユーザーが検索を実行すると、検索条件に一致するページが表示されます。

Lucene.Net 2.9.2 を使用しています

2 つの問題があります...

1- ファイル サイズは約 800 GB で、1 億 3000 万行 (ページ) があるため、検索時間が非常に遅かった (すべてのクエリに 1 分以上かかりました (一度に限られた行しか返さなければなりません)。

パフォーマンスの問題を克服するために、パフォーマンスの問題を解決した SOLR に移行しました (シャーディングなどの SOLR によって提供される追加機能を使用していないため、これは非常に奇妙です。したがって、Lucene.NET 2.9.2 は実際には同等ではない可能性があります)。同じバージョンの JAVA と比較した場合のパフォーマンス??) しかし、別の問題が発生しています...

2- 個々の「lucene ドキュメント」は 1 ページですが、「実際のドキュメント」でグループ化された結果を表示したいと考えています。返される結果の数は、「ページ」ではなく「実際のドキュメント」に基づいて構成できる必要があります (ユーザーに表示したい方法です)。

したがって、20 個の「実際のドキュメント」と、検索条件に一致するすべてのページが必要だとします (1 つのドキュメントに 100 ページがあり、別のドキュメントに 1 ページしかない場合は関係ありません)。

SOLR フォーラムから得た情報から、それは SOLR-236 パッチ (フィールドの崩壊) によって達成できるということでしたが、トランクでパッチを正しく適用できませんでした (多くのエラーが発生します)。

これは私にとって本当に気の毒なことで、あまり時間がないので、誰かがこのパッチを適用した SOLR 1.4.1 バイナリを送ってくれるか、他の方法があれば教えてください。

とても感謝しております。ありがとう!!

4

3 に答える 3

0

コラプス パッチに問題がある場合は、Solr イシュー トラッカーがその問題を報告するチャネルです。現在、他の人が問題を抱えていることがわかりますので、開発に参加することをお勧めします。

つまり、アプリケーションで「実際のドキュメント」を検索する必要がある場合は、個々のページではなく、これらの「実際のドキュメント」を中心にインデックスを作成することをお勧めします。

于 2010-08-12T13:40:27.403 に答える
0

ページ番号を表示することが唯一の要件である場合は、蛍光ペンで遊ぶか、カスタム開発を行うことをお勧めします。各ページの開始と終了の単語番号をカスタム構造に保存でき、ドキュメント全体で一致した単語の位置を知ることで、それがどのページに表示されるかを知ることができます。ドキュメントが非常に大きい場合、パフォーマンスが大幅に向上します。

于 2010-12-17T10:09:36.327 に答える
0

SOLR-1682 : Implement CollapseComponentもご覧ください。まだテストしていませんが、私が知る限り、崩壊も解決します。

于 2010-12-17T10:41:52.217 に答える