如何在CD服务器上构建lucene索引

时间:2014-12-10 10:35:44

标签: lucene sitecore lucene.net sitecore7

我有两个服务器,一个用于Content Management网站,另一个用于Content Delivery网站。两台服务器都配置不足。

CM服务器: 1)运行网站的IIS。 2)Sitecore文件夹和文件。 3)核心,主数据库和Web数据库 4)网站代码文件/文件夹。

CD服务器 1)运行网站的IIS。 2)没有Sitecore文件夹和文件。 3)核心和通用Web数据库。 4)网站代码文件/文件夹。

注意:Web数据库在两个网站中都很常见。

我可以浏览这两个网站的网页 但来自CM网站的Sitecore仅作为CD网站没有sitecore文件。

我的一些网页正在从Lucene Indexes中获取内容。

现在我从Sitecore(CM网站)从Control面板构建lucene索引,索引在CM服务器的数据文件夹中成功构建,并且在CD网站的Data文件夹中没有创建索引。

我尝试在CD服务器上第一次复制索引,但是当我发布更改时,它只更新了CM服务器数据文件夹而不是CD服务器数据文件夹上的索引。

我想在发布项目时在CM和CD服务器上的Data文件夹中创建索引。

索引配置

<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
  <sitecore>
    <contentSearch>
      <configuration type="Sitecore.ContentSearch.LuceneProvider.LuceneSearchConfiguration, Sitecore.ContentSearch.LuceneProvider">
        <indexes hint="list:AddIndex">
          <index id="sitecore_web_index" type="Sitecore.ContentSearch.LuceneProvider.LuceneIndex, Sitecore.ContentSearch.LuceneProvider">
            <param desc="name">$(id)</param>
            <param desc="folder">$(id)</param>
            <!-- This initializes index property store. Id has to be set to the index id -->
            <param desc="propertyStore" ref="contentSearch/databasePropertyStore" param1="$(id)" />
            <strategies hint="list:AddStrategy">
              <!-- NOTE: order of these is controls the execution order -->
              <strategy ref="contentSearch/indexUpdateStrategies/onPublishEndAsync" />
            </strategies>
            <commitPolicyExecutor type="Sitecore.ContentSearch.CommitPolicyExecutor, Sitecore.ContentSearch">
              <policies hint="list:AddCommitPolicy">
                <policy type="Sitecore.ContentSearch.TimeIntervalCommitPolicy, Sitecore.ContentSearch" />
              </policies>
            </commitPolicyExecutor>
            <locations hint="list:AddCrawler">
              <crawler type="Sitecore.ContentSearch.SitecoreItemCrawler, Sitecore.ContentSearch">
                <Database>web</Database>
                <Root>/sitecore</Root>
              </crawler>
            </locations>
          </index>
        </indexes>
      </configuration>
    </contentSearch>
  </sitecore>
</configuration>

发布策略是&#34; onPublishEndAsync&#34; 请建议。

1 个答案:

答案 0 :(得分:0)

如果您的CD服务器有另一个数据库,那么您应该将该服务器的配置更改为:

<locations hint="list:AddCrawler">
  <crawler type="Sitecore.ContentSearch.SitecoreItemCrawler, Sitecore.ContentSearch">
    <Database>NAMEOF-CD1-DATABASE</Database>
    <Root>/sitecore</Root>
  </crawler>
</locations>

编辑:我看到你有&#39;网络&#39;跨服务器的数据库,因此以上不适用于您的情况。

同时检查您是否启用了可伸缩性设置(在缩放指南4.1中说明)。如果未启用此选项,则在(远程)CD服务器上将不会触发在CM服务器上触发的事件。   http://sdn.sitecore.net/Reference/Sitecore%207/Scaling%20Guide.aspx

再次编辑:我发现这篇文章解释了不同的更新策略。你应该看一下RemoteRebuildStrategy。此策略允许CD服务器侦听重建事件。   http://www.sitecore.net/Learn/Blogs/Technical-Blogs/John-West-Sitecore-Blog/Posts/2013/04/Sitecore-7-Index-Update-Strategies.aspx