2012-04-20 7 views
1

インデクシングが遅く、リソースが集中しているため、私はSolrを12時間以内に再インデックスするように設定しました。新しいレコードがインデックスに追加される前に追加されると、それは検索できません。そうですか?インデックスが作成されていなくても、Solr/Sunspotに検索クエリに新しいレコードが含まれていますか?

「はい」の場合は、他の検索システムに変更する必要がありますか?

+1

"する必要がありますか?"私たちがそれにどのように答えられるかは不明です。私は、レコードが追加されたときに索引付けされたと思った - あなたはそうではないと確信していますか? –

+1

@DaveNewton通常はupdate/createのインデックスですが、調整することができます。ビクター:はい、それがインデックスにない場合は、インデックスを使用して見つけることはできません。 –

+0

確認のためにみんなありがとう。 – Victor

答えて

2

ドキュメントは、コミット後の検索にのみ使用できます。彼らは解析され、Solrに提出されるとすぐに内部形式に変換されます。インデックス作成です

あなたの質問は純粋なSolrシステムではあまり意味がありません。あなたはRDBMSを持っていて、それを再インデックス化していますか?そうであれば、Solrはデータベースからレコードがフェッチされ、索引付けされ、コミットされたときにのみ更新されます。

遅延が短い場合は、いくつかのオプションがあります。各レコードにタイムスタンプがある場合は、変更されたレコードのみを定期的に再インデックスすることができます。彼らは古いバージョンのレコードを置き換えます。これを行う場合は、削除されたレコードを特別に処理する必要があります。通常、「削除済み」列を追加し、そのレコードに対してSolr deleteコマンドを発行します。

データ入力ハンドラはデルタクエリをサポートしていますが、少し複雑です。また、データベースを読み込み、専用のSolr XML形式で定期的なSolrの更新を送信するコードを書くこともできます。

頻繁に更新すると、検索のパフォーマンスが低下する可能性があります。 Solrはキャッシュ結果から多くのパフォーマンスを得ます。これらのキャッシュは、コミット後にクリアされます。統計結果ページで、クエリ結果キャッシュのキャッシュヒット率を確認します。これが高い場合は、頻繁な更新がパフォーマンス上の問題を引き起こす可能性があります。

関連する問題