0

私はSolrをウェブサイトの製品フィルタリングに使用しています.

たとえば、テレビのデータベースをサイズ、価格、会社などでフィルタリングできる製品フィルターを使用できます。Solr+FilterQuery は、そのような機能に対して非常に効果的であることがわかりました。DB 内のすべての TV の製品情報を持つ別のコアがあります。

製品レビュー用のコアがもう 1 つあります。レビューは、特定の製品タイプまたは会社に関するものです。そのため、誰かが Samsung TV または Samsung カスタマー サービスでレビューを書くことができます。したがって、誰かがテキスト (たとえば、「Samsung TV レビュー」または「Samsung カスタマー サービス」) を検索するとき、私はこのコアを検索します。

ここで、上記のコアの結果をマージしたいと思います。したがって、誰かが「samsung 46 lcd コントラスト比 レビュー」を検索するとき、私は基本的に会社 (Samsung) でテレビをフィルタリングし、次にサイズ (46") でフィルタリングしてから、「contrast ratio review」というテキストを含むレビューを見つけたいと考えています。これを行う方法の手がかり 基本的に、結果をドキュメントIDでマージし、結果2の列を結果1に追加したいと考えています。

データを平坦化する提案を見てきましたが、他の多くのフィルターでレビュー インデックスを使用したいと考えています。だから、それが良いアイデアかどうかはわかりません。さらに、新しいレビューが入り始めた場合、製品のすべてのコアを再インデックスしたくありません (デルタ再インデックスでも多くの製品に影響します)。

これを達成する方法についてのアイデアはありますか?

4

1 に答える 1

1

あなたの質問が正しければ、あなたが探しているのは JOIN 機能です。

http://www.slideshare.net/lucenerevolution/grouping-and-joining-in-lucenesolr

http://wiki.apache.org/solr/Join

于 2012-09-05T10:19:19.120 に答える