【发布时间】:2016-05-09 06:57:54
【问题描述】:
我已将“Products_index”定义为使用 SwitchOnRebuildLuceneIndex 类型来重建自身。我看到索引生成 2 个文件夹:“Products_index”和“Products_index_sec”。但是,当我手动重建索引(sitecore 控制面板)并同时尝试从索引中获取结果时,重建 secondary 索引时不会返回结果。
所以场景:
- 手动重建索引
- 同时索引正在返回结果。
- 重建索引完成。
- 一切正常。
- 手动重建索引(再次)(所以现在它正在重建二级文件夹)
- 同时索引不返回结果。
- 重建索引完成。
- 一切又好了。
索引配置如下所示:
<index id="Products_index" type="Sitecore.ContentSearch.LuceneProvider.SwitchOnRebuildLuceneIndex, Sitecore.ContentSearch.LuceneProvider">
...
<locations hint="list:AddCrawler">
<crawler type="Sitecore.ContentSearch.SitecoreItemCrawler, Sitecore.ContentSearch">
<Database>master</Database>
<Root>/sitecore</Root>
</crawler>
</locations>
</index>
我正在使用以下代码(通过 Web api 调用)获得结果
using (var searchContext = ContentSearchManager.GetIndex(MediqBusiness.Constants.Search.ProductIndex).CreateSearchContext())
{
var query = searchContext.GetQueryable<ProductSearchResultItem>().Where(searchItem => searchItem.Name != "__Standard Values"
&& searchItem.TemplateName == "Product" && searchItem.Language == Sitecore.Context.Language.Name);
//additional query fields here..
var results = query.GetResults();
return results;
}
Sitecore 版本:Sitecore.NET 7.2(修订版 141226)
有什么想法吗?
【问题讨论】: