2012-03-27 1 views
0

記事を格納および検索するSolrインデックスがあります。各記事には、タグを格納するための重複フィールドがあります。 私たちのシステムでは、タグはグループ化することができ、それを「トピック」と呼ぶことができます。トピックを保存する別のインデックスがあり、各トピックにはタグがあります。 特定のトピックの記事を検索する必要があります。 Topicを同じインデックスのMulivaluedフィールドとして保存することができますが、タグを追加または削除することでTopicに変更があった場合は、記事全体を再インデックスする必要があります。 もっと良い解決策があるのだろうか?だから... ...Solr:共有フィールドを使用して暗黙的に関連する文書を検索する

答えて

0

SOLRが効果的にMongoDB、カサンドラ、のようなNoSQLデータストア..ですので、あなたはNoSQLの考え方を採用し、RDBMSの考え方を破棄する必要があり、私は、追加として、それらが含まれるであろうあなたが示唆したように多値フィールドを作成し、変更したときにすべてを再インデックスします。あなたのインデックスが本当に本当に大きい場合を除いて、それはお金を払うための小さな値段です。インデックスの再作成には非常に時間がかかります。

セカンダリインデックスを再インデックスする必要があるため、代わりにプライマリインデックスのインデックスを再作成する必要はありません。そうすれば、セカンダリインデックスを完全に破棄することができます(そうすべきです)。

+0

ご返信ありがとうございます。記事索引は何百もの文書を持ちますが、トピック索引は数百だけ含まれます。レンディング記事は長いプロセスであり、私はトピックを再インデックスする方が好きです。しかし、他の方法がない場合は、記事内にトピックを含める必要があります。 – Reza

+0

そこには方法がありますが、それらはハックです(IMHO)。どのくらいの頻度でトピックタグが変更され、すぐに更新されることが重要ですか(遅れがあればOKですか?)これと、この「リレーショナル」機能/ハックをSOLRシステムに追加するという追加のコード/複雑さを考慮する必要があります。 – nickdos

+0

私たちのインデックスの1つであるFYIには3000万のドキュメントがありますが、同様の理由で週に一度更新しますが、データはcassandraに保存されています。インデックス作成に時間がかかる場合は、インデックス作成のスピードアップの仕方を検討してください。 – nickdos

関連する問題