Lucene SearchResult.Fields集合缺少一些属性

时间:2012-10-01 14:57:12

标签: lucene umbraco

我也在Our Umbraco community网站上提出了以下问题,但到目前为止我没有运气。

我有一个任务需要手动为媒体图像文件添加数据库记录,该文件将出现在我们客户的Umbraco网站中。

我的SQL包含:

  • 在umbracoNode中为图像添加记录。
  • 在cmsContent中添加记录
  • 在cmsContentXml中添加记录
  • 为cmsPropertyData添加记录,用于图像的umbracoFile,umbracoWidth,umbracoHeight,umbracoBytes,umbracoExtension

执行上述操作并登录Umbraco后,我可以看到媒体区域中的图像,看起来都很好。

当我想要显示该图像时,问题是调用@ Model.MediaById()(在Razor文件中) - 由于未设置img'src属性,基本上没有显示图像。

我已经逐步完成了Umbraco代码并发现了问题。基本上,当代码使用Lucene搜索媒体时(ExaminedBackendMedia.GetUmbracoMedia()),它确实找到了图像文件,但是SearchResult缺少许多字段。例如,cmsPropertyData中的“umbraco *”属性都不会出现在fields集合中。当我逐步浏览另一个图像的代码(一个手动添加的图像)时,我可以在字段集合中看到额外的5个左右属性 - 包括所有“umbraco *”属性。

所以我可以看到我在这里缺少数据。基本上,SearchResult对象缺少某些字段。有人可以建议我可能会错过的吗?为什么Lucene没有获取我通过SQL脚本添加的“umbraco *”属性?

1 个答案:

答案 0 :(得分:1)

您需要确保重新发布节点,这些节点将从您创建的数据库条目中取出它们,并将它们放入umbraco在提供数据时实际使用的XML缓存中。