2

我们有一个相当大的 umbraco 网站,正在为客户维护。特别是一种节点类型具有自定义检查索引器/搜索器,用于在站点的特定区域中进行搜索。我们有一个 DirectoryIndexer_GatheringNodeData 事件,它连接在启动处理程序中,它将一些数据推送到一些定义的索引字段中:

<IndexUserFields>
  <add Name="clientBrandInfo" />
  <add Name="brandIndex"/>
  <add Name="productIndex"/>
</IndexUserFields>
<IncludeNodeTypes>
  <add Name="DirectoryClient"/>
</IncludeNodeTypes>

我们正在观察一个问题,即定期(似乎无法在本地重现)索引只是完全删除brandIndexproductIndex字段(它们从索引中消失,就像它们从未存在过一样)

如果我们在后台使用检查管理仪表板查看索引数据,clientBrandInfo 字段仍然存在,但brandIndexproductIndex字段不存在。

它们同时对所有节点消失,并且重新索引将它们恢复。

我们检查了跟踪日志,没有迹象表明所有节点都调用了 NodeGathering 事件(因此没有完全重建),其中自定义字段设置为空。

每当此事件运行并在索引中设置节点信息时,我们都会记录。

有没有人有什么建议?现在,我们已经安排每小时重建一次索引,大约需要 3 分钟。

我观察到的唯一一件事是当问题发生时索引显示一些删除索引仪表板 但是在开发测试中,即使通过删除/更新/添加索引到 lucene 的节点,我也无法重现丢失的字段问题(删除是)。

4

0 回答 0