Ian*_*ham 7 lucene search sitecore
我一直在使用一些Sitecore 7搜索代码.以下示例.
using (var context = Index.CreateSearchContext())
{
// ....Build predicates
var query = context.GetQueryable<SearchResultItem>().Where(predicate);
return query.GetResults();
}
Run Code Online (Sandbox Code Playgroud)
这在SOLR中工作正常,但是当与标准Lucene一起使用时,每当我引用SearchResults<SearchResultItem>
返回的属性时GetResults()
,Sitecore错误都带有" Cannot access a disposed object
".它似乎GetResults()
没有枚举并仍然挂在searchcontext上.
有人之前遇到过这个并知道如何修复吗?我已经看到一些文章建议SearchContext
处于应用程序状态,但理想情况下我想避免这种情况.
谢谢
伊恩
似乎SearchResults<T>
持有参考SearchHit
并且LuceneSearchProvider
不会让读者打开.新版本的Lucene会自动关闭阅读器.我想你可能会回错了.你应该这样做:
var query = context.GetQueryable<SearchResultItem>().Where(predicate);
return query.ToList();
Run Code Online (Sandbox Code Playgroud)
但请确保,不要返回太多.你应该使用take()等.
归档时间: |
|
查看次数: |
1074 次 |
最近记录: |