2012-05-05 17 views
0

フルテキスト検索のためにデータベースとLuceneに保存されるContentエンティティがあります。 そのエンティティでは、フィールド評価があります。これは、ユーザー+または - 評価時に更新されます。 評価はいつでも更新でき、正しい評価値を表示する必要があります。 Luceneのドキュメントに格付けを保存し、ユーザーがそれを更新するたびに更新する必要がありますか?Lucene.netと頻繁に更新されるフィールド

+1

なぜluceneインデックスに評価を保存しますか? –

+0

これはRavenDB用ですか? –

+0

Luceneを検索サービスまたはデータリポジトリとして使用していますか? – Kane

答えて

1

通常のアプローチは以下の通りです:Luceneの中

  • ストアエンティティID、あなたは簡単にこのIDによって、データベースまたはキャッシュからエンティティをロードすることができるように。
  • 検索、フィルタリング、または発注するエンティティフィールドを格納します。たとえば、ユーザー名で検索する場合は、ユーザー名を格納します。ユーザー名とユーザーバイオで検索する場合は、両方のフィールドを保存します。ただし、このフィールドで検索を行う必要がない場合は、ユーザーの年齢やユーザーの電話番号などを保存しないでください。評価と同じ - 評価で検索する必要がない場合(評価が100以上のすべてのユーザーを検索するか、評価が!= 0などのようなクエリを実行する必要がない場合)、評価をLuceneに保存しないでください。代わりにLuceneで検索し、エンティティIDを取得し、データベースまたはキャッシュから評価を取得します。この方法では、データベースのみの評価を更新し、Luceneインデックスを更新する必要があります(ユーザー名やユーザーのバイオなどのフィールドがほとんど変更されない場合のみ)。
関連する問題