我们有一个相当大的 umbraco 网站,正在为客户维护。特别是一种节点类型具有自定义检查索引器/搜索器,用于在站点的特定区域中进行搜索。我们有一个 DirectoryIndexer_GatheringNodeData 事件,它连接在启动处理程序中,它将一些数据推送到一些定义的索引字段中:
<IndexUserFields>
<add Name="clientBrandInfo" />
<add Name="brandIndex"/>
<add Name="productIndex"/>
</IndexUserFields>
<IncludeNodeTypes>
<add Name="DirectoryClient"/>
</IncludeNodeTypes>
我们正在观察一个问题,即定期(似乎无法在本地重现)索引只是完全删除brandIndex和productIndex字段(它们从索引中消失,就像它们从未存在过一样)
如果我们在后台使用检查管理仪表板查看索引数据,clientBrandInfo 字段仍然存在,但brandIndex和productIndex字段不存在。
它们同时对所有节点消失,并且重新索引将它们恢复。
我们检查了跟踪日志,没有迹象表明所有节点都调用了 NodeGathering 事件(因此没有完全重建),其中自定义字段设置为空。
每当此事件运行并在索引中设置节点信息时,我们都会记录。
有没有人有什么建议?现在,我们已经安排每小时重建一次索引,大约需要 3 分钟。
我观察到的唯一一件事是当问题发生时索引显示一些删除 但是在开发测试中,即使通过删除/更新/添加索引到 lucene 的节点,我也无法重现丢失的字段问题(删除是)。