gpt4 book ai didi

search - Sitecore:为多站点设置 Solr 核心的最佳实践

转载 作者:行者123 更新时间:2023-12-04 02:17:28 25 4
gpt4 key购买 nike

我知道我们可以在 Solr 中创建 N 个核心。但是我不清楚为 sitecore 多站点实现设置 Solr 核心的最佳实践。设想:我们在一个 sitecore 实例中有 5 个站点。每个站点都有搜索能力要求。

最佳实践问题:

  1. 各站点可以共享核心索引和主索引吗?

  2. 然后,为网站索引创建一个站点特定的核心?

  3. 我们是否需要设置配置文件或类似文件以建立站点与 solr 核心之间的关系?

3.1。我想,每个站点都需要有 sitecore solr 索引配置文件吗? 例如Sitecore.ContentSearch.Solr.SiteA.Index.Web(包含自定义索引名称的开箱即用索引文件的副本?)

  1. 我们是否需要编写任何智能(站点上下文)以便搜索将使用正确的 solr 核心?

最佳答案

这个问题的答案实际上是基于意见的。没有一种解决方案适用于所有情况。

甚至还讨论了https://sitecorechat.slack.com关于它。

首先,您需要考虑是否要在站点之间重复使用任何内容。如果是,那么您可以使用开箱即用的 Sitecore 索引。您不会从单独的索引中得到那么多。当然,您可以创建单独的索引,但有些内容必须多次抓取。

如果要创建单独的索引:

  1. 保持 sitecore_core_indexsitecore_master_indexsitecore_web_index 不变 - Sitecore 将使用它们来运行内容编辑器搜索和其他Sitecore 后台搜索。

  2. 为每个站点创建 Solr masterweb 核心,例如site1_master_indexsite1_web_index

  3. 对于每个站点,复制 sitecore_master_indexsitecore_web_index 的配置,并设置内容根目录的正确位置。

    例如创建 Sitecore.ContentSearch.Solr.Index.Master.config 文件 (Site1.ContentSearch.Solr.Index.Master.config) 的副本,并将其内容更改为:

<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
<sitecore>
<contentSearch>
<configuration type="Sitecore.ContentSearch.ContentSearchConfiguration, Sitecore.ContentSearch">
<indexes hint="list:AddIndex">
<index id="site1_master_index" type="Sitecore.ContentSearch.SolrProvider.SolrSearchIndex, Sitecore.ContentSearch.SolrProvider">
<param desc="name">$(id)</param>
<param desc="core">$(id)</param>
<param desc="propertyStore" ref="contentSearch/indexConfigurations/databasePropertyStore" param1="$(id)" />
<configuration ref="contentSearch/indexConfigurations/defaultSolrIndexConfiguration" />
<strategies hint="list:AddStrategy">
<strategy ref="contentSearch/indexConfigurations/indexUpdateStrategies/syncMaster" />
</strategies>
<locations hint="list:AddCrawler">
<content type="Sitecore.ContentSearch.SitecoreItemCrawler, Sitecore.ContentSearch">
<Database>master</Database>
<Root>/sitecore/content/site1</Root>
</content>
<media type="Sitecore.ContentSearch.SitecoreItemCrawler, Sitecore.ContentSearch">
<Database>master</Database>
<Root>/sitecore/media library/site1</Root>
</media>
</locations>
</index>
</indexes>
</configuration>
</contentSearch>
</sitecore>
</configuration>

此配置告诉 Sitecore 仅索引此索引中的 /sitecore/content/site1/sitecore/media library/site1 位置。

  1. 使用约定进行适当的索引搜索,例如:

    ISearchIndex SearchIndex
    {
    get
    {
    return ContentSearchManager.GetIndex(Sitecore.Context.Site.Name + "_" + Sitecore.Context.Database.Name + "_index");
    }
    }

关于search - Sitecore:为多站点设置 Solr 核心的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33060048/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com