Sitecore 将 Lucene 转换为 Solr

Sitecore converting Lucene to Solr

目前,我的 sitecore 8 实例中有 lucene 搜索引擎。它运行良好,但我们的生产服务器发生了一些变化。生产服务器现在是 2 个具有负载平衡的内容交付服务器和一个内容管理服务器。

我读到在这种架构中很难使用lucene。他们建议使用 Solr 而不是 lucene。

我可以在这个 post 的帮助下设置 solr。它运行良好,我能够为 sitecore_web_index、sitecore_master_index、sitecore_core_index 和 sitecore_analytics_index.

创建索引

我遇到的问题是将我的自定义搜索索引配置转换为 SOLR 配置 (schema.xml)。

我的搜索索引配置包含计算字段和一个仅索引那些特定字段的包含模板 (<include hint="list:IncludeTemplate">)。

问题:

  1. 如何在 SOLR (schema.xml) 中创建 sitecore 计算域?
  2. 如何仅索引特定模板?
<include hint="list:IncludeTemplate">
       <page>{GUID}</page>
</include>

我已经检查了 solrTutorial.com 中的样本,但找不到我要找的东西(菜鸟!)。

期待向你们学习。

更新:

执行 nsgocev 的建议我收到以下错误:

更新 2:

似乎将“添加时初始化”设置为 true 会导致问题:

<initializeOnAdd>true</initializeOnAdd>

请让我知道我缺少什么。

谢谢,

基本上使用计算字段与将其与 Lucene 索引一起使用是一样的。这个想法是将您的字段添加到 Sitecore.ContentSearch.Solr.* 配置中,而不是添加到 Sitecore.ContentSearch.Lucene.* 配置中。在 Solr 配置中(很可能是 Sitecore.ContentSearch.Solr.DefaultIndexConfiguration.config)应该有 <fields hint="raw:AddComputedIndexField"> 部分,您只需要在其中添加计算字段,如下所示:

 <fields hint="raw:AddComputedIndexField">
     ...
     <field fieldName="mycomputedfield"             returnType="string">YourNamespace.MyComputedField, YourAssembly</field>
 </fields>

在特定模板上建立索引也是如此。同一个配置文件里面有个列表(默认注释掉)

<!-- <include hint="list:IncludeTemplate">
    <BucketFolderTemplateId>{ADB6CA4F-03EF-4F47-B9AC-9CE2BA53FF97}</BucketFolderTemplateId>
</include>-->