2

SQLServerデータベースでバックアップされたASP.NETサイトがあります。Lucene.NETを使用して、データベースのインデックス作成と検索を行っています。結果ページにファセット検索ナビゲーションを追加しています(ファセットは階層的なカテゴリツリーです)。私は昨日、ファセットに正しいテクニックを使用していることを確認するように頼みました。これまでに得たのはSolrを使用するための提案だけですが、Solrは私が必要としない多くのことを行います。

Solrのファセット処理がBertWillemsによってここで説明されているものとひどく異なるかどうか、Solrのソースコードに精通している人から本当に知りたいです。基本的に、各ファセットにLuceneフィルターがあり、そこからビット配列を取得し、配列内の設定されたビットをカウントします。

そもそも私は階層的であるため、これをかなりうまく最適化できるはずだと思っていますが、このデザインが検索パフォーマンスに与える影響を大幅に過小評価しているのではないかと思います。Solrが速くなければ、それを使用しても何も得られません。

4

1 に答える 1

3

Solr を使用してファセットのニーズをモデル化するプロトタイプ プロジェクトを作成し、Lucene.net に対してベンチマークすることをお勧めします。

Solr のファセットは非常に最適化されていますが (セグメントごとの並列ファセット メソッドのように、常に新しい最適化が行われます)、Solr を使用すると、ネットワーク ラウンドトリップや応答解析などのオーバーヘッドが発生します。

コードがすでに Lucene.NET を実装しており、十分に機能し、Solr の追加機能が必要ない場合は、Solr に切り替える必要はありません。ただし、Solr を選択すると、新しいバージョンごとに無料でファセット パフォーマンスが向上することも考慮してください。

于 2010-10-19T20:59:48.623 に答える