我必须将Solr索引实现到Sitecore中,我想知道什么是最佳方法?

我研究了以下方法:

  • 捕获发布结束事件(或其他事件),然后将项目推送到solr索引
  • 实现自定义数据库搜寻器,并从历史表中获取所有更改。然后使用自定义索引推送数据进行solr。

  • 第二种方法听起来很可行(我认为)。在这种情况下,我需要创建一个新的搜索索引还是搜索管理器?

    如果有人做过,您能指出我正确的方向吗?另外,如果您可以发布一些指向有关sitecore-solr实现的文章的链接。

    更新
    好的,在阅读了sitecore文档之后,我想到了这一点:
  • 创建您的自定义SolrConfiguration类,您可以在其中设置诸如solrserviceurl之类的属性,添加索引及其定义(自定义solr索引)。
  • 创建SolrIndex并将其(在配置文件中)添加到您的SolrConfiguration中。哪个实例化的solrindex应该订阅Sitecore History Manager的AddEntry事件,并与solr搜寻器通信。
  • 创建自定义处理器,并挂接到sitecore初始化管道中。处理器应初始化SolrConfiguration(从步骤1开始)
  • 由于配置文件中的所有内容都将使用refrection构建,因此您可以根据配置文件
  • 获取配置实例。

    听起来怎么样。请问我有什么意见吗?

    最佳答案

    我们已经在一些站点上完成了此操作,并且倾向于使用新的“已发布” solr索引和“未发布”索引

    我们打断:

    OnItem保存

    将事件推送到未发布的索引中的事件(您可能不需要此,这取决于您是否希望在预览模式下进行操作)

    OnPublishItemProcessed

    我们在这里处理对已发布索引的添加和更新,我不确定我们在这里如何处理删除而不深入研究代码,但肯定会处理OnItemDelete上的删除(如下所述)

    OnItem删除

    我们在此处中断以从已发布和未发布的索引中删除内容(我认为我们从此处已发布的索引中删除内容是因为Sitecore允许您发布父节点,以便将删除内容发布到Web数据库)

    我希望这会有所帮助,如果可以的话,我会发布代码(但是我会皱眉)。

    09-26 02:56