tha*_*ler 12 lucene sitecore sitecore7
我使用默认设置创建了一个自定义搜索页面sitecore_web_index,一切似乎都有效,直到我迁移到具有单独内容管理和内容交付服务器的测试环境.CD服务器上的索引没有在发布时更新(CM服务器确实),如果我从控制面板重建索引,我会看到更新.所以我相信索引和搜索页面正常工作.
该指数正在使用该onPublishEndAsync策略.Sitecore搜索和索引指南(http://sdn.sitecore.net/upload/sitecore7/70/sitecore_search_and_indexing_guide_sc70-usletter.pdf)第4.4.2节说明:
这个策略正如名称所暗示的那样.在初始化期间,它订阅该
OnPublishEnd事件并触发增量索引重建.使用单独的CM和CD服务器,此事件将通过EventQueue对象触发,这意味着EventQueue需要启用该对象才能使此策略在此类环境中工作.
我的web.config有 <setting name="EnableEventQueues" value="true"/>
同样来自搜索和索引指南:
处理
策略将使用EventQueue初始化的数据库中的对象:<param desc="database">web</param>
这意味着该策略成功执行有多个标准:
- 必须
<databases />在配置文件的部分中指定此数据库.- 该
EnableEventQueues设置必须设置为true.EventQueue预配置数据库中的表应具有日期晚于索引的上次更新时间戳的条目.
我不确定<param desc="database">web</param>设置,因为CD服务器的发布目标(和数据库ID)是pub1.我尝试更改web为pub1,但是然后服务器的索引都没有在发布上更新(因此它已更改回web).
该系统最近从Sitecore 6.5升级到7.2,因此有几个索引使用Sitecore.SearchAPI,这些索引在发布时更新.
EventQueue考虑到多个发布目标,数据库参数是否出错?还有其他我想念的东西,或者可能是我可以比较的CM - > CD环境的工作示例吗?
TIA
编辑:如果我不想在周五和今天坐在我旁边的同事可以确认,我会认为我会发疯.但现在,CD服务器正在获取索引的更新,但CM服务器没有获得更新.什么会使CM服务器现在无法获得更新?
Lav*_*ver 13
我昨晚遇到了同样的问题,并且比创建新的IIS站点具有更可预测的解决方案:
解决方法是在每个CD服务器的ScalabilitySettings.config中设置不同的InstanceName,而不是依赖于自动生成的名称.
设置此值会立即解决问题,并在发布End Remote事件时恢复索引更新功能.
注意:如果你已经有在你的配置中定义的实例名,那么你需要改变这个工作.我只是使用日期增加InstanceName以强制进行更改.
这通过更改为新的IIS站点以与原始海报相同的方式有效地修复了同一问题,因为OP的修复程序将根据新的IIS站点名称修改自动生成的实例名称.
相信随着OP的核心问题(也包括我的实例)相关的EventQueue数据库走出去同步与CD情况下,没有服务器能够确定已发生的事件/什么内容需要更新在索引中.通过更改实例名称(使用任一方法),服务器似乎是新实例,并从头开始进行EventQueue跟踪.
每次我在过去看过这样的问题时,都与Sitecore数据库的主要操作有关.例如,由于部署问题,还原,备份/还原到新的数据库名称或数据库回滚.我相信上述操作中的某些内容会导致EventQueues不同步,服务器会停止响应预期的事件.
| 归档时间: |
|
| 查看次数: |
9589 次 |
| 最近记录: |