为什么SwitchOnRebuildLuceneIndex仍然会停机?

时间:2016-05-09 06:57:54

标签: lucene sitecore

我已经定义了我的'Products_index'来使用SwitchOnRebuildLuceneIndex类型来重建自己。我看到索引生成了2个文件夹:'Products_index'和'Products_index_sec'。但是,当我手动重建索引(sitecore控制面板)并同时尝试从索引中获取结果时,重建辅助索引时不会返回结果。

所以情景:

  1. 手动重建索引
  2. 同时索引正在给出结果。
  3. 重建索引完成。
  4. 一切都很好。
  5. 手动重建索引(再次)(现在它正在重建辅助文件夹)
  6. 同时指数给予结果。
  7. 重建索引完成。
  8. 一切都很好。
  9. 索引配置如下所示:

    <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>
    

    我使用以下代码(通过网络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)

    有什么想法吗?

1 个答案:

答案 0 :(得分:2)

当我们使用Sitecore SwitchOnRebuildLuceneIndex时,我们遇到了以下问题。我们联系了Sitecore,他们提供了一个补丁#457624

SwitchOnRebuildLuceneIndex通常做的是在重建Sitecore索引时,它将在目录之间切换。目前,主目录是 Products_index ,您启动重建索引。现在您将点击 Products_index_sec 。当第二次重建索引时,目录将再次切换到 Products_index

我们观察到您需要重建索引两次。我们已经在Sitecore支持门户网站上记录了一张票,他们向我们提供了补丁#457624

由于