【发布时间】:2011-03-30 11:22:56
【问题描述】:
在搞清楚 Lucene 几个小时后,我放弃了。希望你能帮忙。
设置
在我们当前的 Sitecore 树中,我们有模板 2 模板继承级别。 (假设车辆 -> 汽车 -> 一级方程式/车辆 -> 船)。
我现在需要通过 Lucene 获取的是每个 ContentItem 从某个模板直接或间接继承。
例如:
- 获取车辆 -> 返回:“通用”车辆、汽车、F1 赛车和船只
- 获取汽车 -> 返回:汽车、F1 赛车
我认为是在Lucene中使用_templates-field,即:
获取车辆 -> _templates 包含 Vehicle-template-guid。
获取汽车 -> _templates 包含 Car-template-guid。
问题
我遇到的主要问题是 F1 Car-模板的内容项仅在_templates-字段中包含 Cars 和 F1 Car,并且 不是通用的“车辆”。
我可能误解了 _templates-field,但我想知道是否还有其他选项。
网站核心配置:
内容项:
- 网站核心
- 内容
- 首页
-
A类别
- 一个孩子 1
- 一个孩子 1.1
- 一个孩子 2
-
A类别
- 首页
- 内容
模板(级别 = 继承):
-
主要实体
-
子实体 1
- 子实体 1.1
- 子实体 2
-
子实体 1
- 类别
【问题讨论】:
-
您采用哪种 Lucene 方法? “旧”Lucene 方法还是“新”方法?你在用Advanced Database Crawler吗?
-
我们正在开发一个自定义索引,由继承 Sitecore.Search.Crawlers.DatabaseCrawler 的自定义爬虫维护。这个爬虫也向项目添加了一些我们的自定义字段。 - 目前,我正在尝试的解决方案是将 item.Template.ID.Guid 和(递归)每个 baseTemplate.Guid 写入一个新字段。我认为这会起作用(它与 _path-field 非常相似,只是用于模板继承),我会告诉你的。
标签: templates inheritance lucene sitecore