lucene - Sitecore syncMaster 索引策略不起作用

标签 lucene sitecore lucene.net sitecore8 sitecore8.1

我有一个渲染组件,它使用 Lucene 索引运行搜索来填充自身。

我们定义了两个索引;大师和网络。在体验编辑器中,它使用主索引和实际站点的 Web 索引。

我们已将 Web 索引策略配置为 onPublishEndAsync ,我们已经将主索引策略配置为 syncMaster ,其想法是 CMS 用户可以添加/编辑支持该组件的 Sitecore 项目,并立即在体验编辑器中查看它们。

但是,随着我们在 Sitecore 中更改数据,主索引似乎并未更新。体验编辑器仅在我手动运行索引重建后显示数据。

        <strategies hint="list:AddStrategy">
          <strategy ref="contentSearch/indexConfigurations/indexUpdateStrategies/syncMaster" />
        </strategies>

为什么索引不会在数据更改时自行更新?

更新

因此,我将建议的文件与全新安装进行了比较,它们是相同的。

我应该补充一点,我没有使用标准 sitecore_master_index .我们有多个站点运行同一个 sitecore 实例,因此我们为 websitename_master_index 添加了一个配置包含.我已经在 <index> 中比较了这个配置节点反对 sitecore_master_indexSitecore.ContentSearch.Lucene.Index.Master.config唯一的区别是爬虫的 <root>元素指向特定的站点内容节点,加上我们添加了一些自定义字段,但我认为这些字段不会引起问题,我们可以手动重建索引吗?

我在查看 showconfig.aspx 时发现的另一件有趣的事情这是:
<agent type="Sitecore.ContentSearch.Tasks.Optimize" method="Run" interval="12:00:00" patch:source="Sitecore.ContentSearch.config">
    <indexes hint="list">
        <index>sitecore_master_index</index>
    </indexes>
</agent>

我不确定这是否有任何意义,但是我们的自定义 websitename_master_index 没有匹配的条目?

更新

我还向爬虫添加了调试级别日志记录





在 crawling.log 我只看到以下内容:
14416 08:55:10 INFO  [Index=website_master_index] Initializing SitecoreItemCrawler. DB:master / Root:/sitecore/Content/Website/Home    
14416 08:55:10 INFO  [Index=website_master_index] Initializing SynchronousStrategy.

在编辑和保存项目时,日志中没有进一步提及索引,而标准sitecore_master_index 确实如此。我们没有改变配置?

最佳答案

为了保证Lucene文件不被并发修改,Lucene增加了一个.lock文件概念 - 无论进程要写入,都必须创建文件。
如果已经有一个 - 等待它被删除。

如果一个 writer 进程被终止,文件永远不会被删除,因此索引永远不会被更新。

解决方案是手动清理文件夹。

为了做出更好的预测,需要进程的内存快照来查看内部发生的事情(或 does each thread do )。

关于lucene - Sitecore syncMaster 索引策略不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35774317/

相关文章:

lucene - 使用 "and"运算符搜索多个字段(但使用字段自己的分析器)

mysql - 数据未在ajax solr中建立索引

Sitecore 快速检查媒体库中的 mediaItem 是图像还是图片的方法

Sitecore RTE 超时

Sitecore 自定义多列表

indexing - 如何判断文件夹中是否存在 Lucene.Net 索引?

java - Lucene:建立索引

solr - 我想用Solr/Lucene构建一个搜索引擎

indexing - 如何使用 Lucene.NET 计算文档的 "OnTopicness"

lucene - 在 Azure 和 Lucene.NET 上构建分布式索引。我应该学习 Solr 和 Hadoop 吗?