Sitecore CMS + DMS 6.6.0 rev.130404 => 7.0 rev.130424
在我们的项目中,我们一直在为我们的索引使用AdvancedDatabaseCrawler(ADC)(特别是因为它的动态字段功能).这是一个示例索引配置:
$(id) $(id) web /sitecore/content/Globals/Locations true {FF0D64AA-DCB4-467A-A310-FF905F9393C0}
如您所见,我们使用scSearchContrib.Crawler.Crawlers.AdvancedDatabaseCrawler
爬虫作为爬虫,它使用
部分内部定义的字段将自定义字段注入索引.
现在我们将项目升级到sitecore 7.在Sitecore 7中,他们已将DynamicFields功能从ADC移植到sitecore.我发现了一些关于此的文章,并转换了我们的自定义搜索字段类来实现sitecore 7 IComputedIndexField
接口,而不是继承BaseDynamicField
ADC中的类.现在我的问题是如何更改索引配置以匹配新的sitecore 7 API.网上有点点零碎,但找不到转换配置所需的所有示例.有人可以帮我这个吗?
虽然我这样做,但我的印象是我们不必重建我们的索引,因为它仍然在内部使用Lucene.我不想改变索引结构.只想将代码和配置从AdvancedDatabaseCrawler升级到Sitecore 7.我是否应该担心破坏现有的索引?请详细说明这一点.
谢谢
一些快速澄清:)
我们还没有将ADC合并到Sitecore 7中,该ContentSearch
层是Sitecore的旧搜索层的完全重写.我们从ADC中获取了一些核心概念,例如动态字段,并将它们放在新的实现中(作为ComputedFields).它们不是1:1兼容的,您必须对索引进行一些工作.
Lucene的版本也从2.*升级到3.0.3所以所有索引都需要重新创建,因为它们是Lucene的一个非常不同的版本.
这里有两个选项,旧的Lucene搜索(Sitecore.Search名称空间)(建立在哪个ADC上)尚未触及并仍然以相同的方式工作,尽管我不确定ADC与SItecore 7的兼容性如理论上这已经被取代了.
下一个选项是更新您的索引以利用Sitecore 7的新搜索功能.您拥有的配置将不会直接兼容,但是,虽然您需要将索引重新编写为新配置,但基本概念应该是熟悉的给你.您拥有的动态字段应该逻辑映射到ComputedFields(在索引项目时计算的字段),其他所有字段都很简单.
虽然看起来很多额外的配置ContentSearch
是你不需要触摸的默认配置,但你只需要覆盖你想要添加的计算字段和你想要包含的模板的配置部分.
可以在此处找到创建自己的配置覆盖的示例:http://www.mikkelhm.dk/post/2013/10/12/Defining-a-custom-index-in-Sitecore-7-and-utilizing-it的.aspx
我还建议你确保升级到7.0转.131127(7.0 Update-3),因为它修复了当前版本中IncludeTemplates逻辑中的错误.