Sitecore.NET 6.6.0 (リビジョン 130404)
このプロジェクトでは、すべてのクエリを実行するために Sitecore.Search.IndexSearchContext を使用しています。具体的には、IndexSearchContext.Searcher メソッドを使用して内部の Lucene サーチャーにアクセスし、それに Lucene クエリを渡します。
同じ IndexSearchContext インスタンスを再利用してすべてのクエリを実行すると、実行されるクエリごとに IndexSearchContext を作成して破棄するよりもはるかに高速であることが (Web 記事と実験を通じて) わかりました。
また、IndexSearchContext は、IndexSearchContext の作成後に行われたインデックスの更新に影響されないことも読みました。このため、共有の IndexSearchContext を破棄し、30 秒ごとに新しいものを作成して、クエリがわずか 30 秒の遅延で最新の結果を取得できるようにしています。このアプローチでは、作成のスレッド セーフを慎重に処理し、共有インデックス サーチャーを破棄する必要があります。
これは物事を行うための安全なアプローチですか?サイトコアでアプリケーション全体のインデックス サーチャーを再利用することはお勧めできませんか?
ありがとう