Sitecore CMS+DMS 6.6.0 rev.130404 => 7.0 rev.130424
在我们的项目中,我们一直使用 AdvancedDatabaseCrawler (ADC) 作为我们的索引(特别是因为它的动态字段功能)。这是一个示例索引配置:
<index id="GeoIndex" type="Sitecore.Search.Index, Sitecore.Kernel">
<param desc="name">$(id)</param>
<param desc="folder">$(id)</param>
<analyzer ref="search/analyzer" />
<locations hint="list:AddCrawler">
<web type="scSearchContrib.Crawler.Crawlers.AdvancedDatabaseCrawler, scSearchContrib.Crawler">
<database>web</database>
<root>/sitecore/content/Globals/Locations</root>
<IndexAllFields>true</IndexAllFields>
<include hint="list:IncludeTemplate">
<!--Suburb Template-->
<suburb>{FF0D64AA-DCB4-467A-A310-FF905F9393C0}</suburb>
</include>
<dynamicFields hint="raw:AddDynamicFields">
<dynamicField type="OurApp.CustomSearchFields.SearchTextField,OurApp" name="search text" storageType="NO" indexType="TOKENIZED" vectorType="NO" />
<dynamicField type="OurApp.CustomSearchFields.LongNameField,OurApp" name="display name" storageType="YES" indexType="UN_TOKENIZED" vectorType="NO" />
</dynamicFields>
</web>
</locations>
</index>
如您所见,我们scSearchContrib.Crawler.Crawlers.AdvancedDatabaseCrawler
用作爬虫,它使用<dynamicFields hint="raw:AddDynamicFields">
部分内定义的字段将自定义字段注入索引。
现在我们正在将我们的项目升级到 sitecore 7。在 Sitecore 7 中,他们将 DynamicFields 功能从 ADC 移植到了 sitecore。我找到了一些关于这方面的文章,并将我们的自定义搜索字段类转换为实现 sitecore 7接口,而不是从ADC 中的类IComputedIndexField
继承。BaseDynamicField
现在我的问题是如何更改索引配置以匹配新的 sitecore 7 API。网上有一些零碎的东西,但找不到转换配置所需的所有示例。有人可以帮我吗?
当我这样做时,我的印象是我们不必重建我们的索引,因为它仍然在内部使用 Lucene。我不想更改索引结构。只想将代码和配置从 AdvancedDatabaseCrawler 升级到 Sitecore 7。我应该担心破坏我们现有的索引吗?请对此也有所了解。
谢谢