如何在大型内容交付 webfarm 中维护 Sitecore Lucene 索引? [英] How to maintain Sitecore Lucene indexes in huge content delivery webfarm?

查看:17
本文介绍了如何在大型内容交付 webfarm 中维护 Sitecore Lucene 索引?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我知道 Lucene 索引不能共享:

<块引用>

Sitecore 在 Lucene 的文件系统中保留一份本地副本每个实例,不支持共享索引实例.

是否可以在 CM 和 CD 之间 xcopy Lucene 索引?

是否有其他方法或建议可以在 30 多个内容交付服务器中维护索引?

更新:我完全意识到 CD 必须启动自己的索引更新.对于超过 30 台 CD 服务器,我认为可能会有一段时间并非所有 CD 服务器都具有相同的索引集.我担心由于某种原因,某些 CD 服务器中的索引会失败,并跟踪为什么/在哪里会是地狱.这就是为什么试图发现是否有一些替代方法可以将索引维护在一个地方(某种共享)并基本上立即复制到所有 CD

解决方案

您需要为 CM 和 CD 服务器 Web 数据库启用 History Engine.

请参阅 Sitecore 扩展指南中的摘录.

<块引用>

为 Sitecore 数据库启用历史引擎:在 web.config 中文件,将以下部分添加到/configuration/sitecore/databases/database 元素,其中 id 等于数据库名称:

<Engines.HistoryEngine.Storage><obj type="Sitecore.Data.$(database).$(database)HistoryStorage, Sitecore.Kernel"><param connectionStringName="$(id)"/><EntryLifeTime>30.00:00:00</EntryLifeTime></obj></Engines.HistoryEngine.Storage><Engines.HistoryEngine.SaveDotNetCallStack>false</Engines.HistoryEngine.SaveDotNetCallStack>

<块引用>

当 Sitecore 项目发生变化时,Lucene 索引也会更新立即在进行更改的 Sitecore 实例上.在多服务器环境中的远程服务器,Lucene 索引是更改项目后不会立即更新.Lucene 索引在定义的时间间隔后自动更新web.config 文件,在 Indexing.UpdateInterval 设置中并使用中定义的两个后续更新之间的最小等待时间Indexing.UpdateJobThrottle 设置.

请参阅此处

I know that Lucene indexes cannot be shared:

Sitecore keeps a local copy of the Lucene index in the file system of each instance and does not support sharing the indexes between instances.

Is it possible to xcopy Lucene indexes between CM and CD?

Is there some other approach or recommendation to maintain a indexes in 30+ content delivery servers ?

Update: I’m fully aware that CDs must kick off their own index update. With over 30 CD servers I’m thinking that maybe there will be a period of time that not all CD server have the same set of indexes. I’m afraid that for some reason the indexes will fail in some of the CD servers and tracking why/where will be hell. That’s why trying to discover if there some alternative approach where indexes are maintain in one place (some sort shared) and basically instantly replicated to all CD

解决方案

You need to enable History Engine for the CM and CD servers web database.

See this extract from the Sitecore Scaling Guide.

To enable History Engine for a Sitecore database: In the web.config file, add the following section to the /configuration/sitecore/databases/database element, where id equals the name of the database:

<Engines.HistoryEngine.Storage>
  <obj type="Sitecore.Data.$(database).$(database)HistoryStorage, Sitecore.Kernel">
   <param connectionStringName="$(id)" />
   <EntryLifeTime>30.00:00:00</EntryLifeTime>
  </obj>
</Engines.HistoryEngine.Storage>
<Engines.HistoryEngine.SaveDotNetCallStack>false</Engines.HistoryEngine.SaveDotNetCallStack>

When a Sitecore item is changed, the Lucene indexes are updated immediately on the Sitecore instance where the change was made. On remote servers in a multi-server environment, the Lucene indexes are not updated immediately after an item is changed. The Lucene indexes are automatically updated after the interval that is defined in the web.config file, in the Indexing.UpdateInterval setting and with the minimum wait time between the two consequent updates defined in the Indexing.UpdateJobThrottle setting.

See here

这篇关于如何在大型内容交付 webfarm 中维护 Sitecore Lucene 索引?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆