Sitecore.NET 6.6.0(修订版 130404)
在我们的项目中,我们使用 Sitecore.Search.IndexSearchContext 来执行我们所有的查询。具体来说,我们使用 IndexSearchContext.Searcher 方法来访问内部 Lucene 搜索器并将 Lucene 查询传递给它。
我发现(通过网络文章和实验)如果我们重用同一个 IndexSearchContext 实例来执行我们所有的查询,它比为每个执行的查询创建和销毁 IndexSearchContext 快得多。
我还读到 IndexSearchContext 对创建 IndexSearchContext 后进行的索引更新不敏感。正因为如此,我正在处理共享的 IndexSearchContext 并每 30 秒创建一个新的,以便查询只需 30 秒延迟即可获得最新结果。这种方法要求我仔细处理创建和处置共享索引搜索器的线程安全性。
这是一种安全的做事方法吗?是否不鼓励在 sitecore 中重用应用程序范围的索引搜索器?
谢谢