我正在试验新的 Sitecore 7.2 功能 SwitchOnRebuildLuceneIndex
显然,此功能允许我在重建索引的同时以只读模式访问我的索引。
在我重建索引的同时,有什么方法可以拥有一个完整的操作索引(不是只读的)?
我正在执行的测试如下:
1) 重建一个包含 30k 项的自定义索引(需要 30 秒)
2) 同时重建索引:添加 Sitecore 项目(通过代码)
3) 同时重建索引:访问自定义索引(通过代码)以获取项目数
4) 索引完成重建后:访问自定义索引(通过代码)以获取项目数
在第 3 步中,它返回原始项目计数 30000 在第 4 步中,它返回更新后的项目计数 30001
感谢帮助 斯泰利奥
最佳答案
我不相信这是可能的。从概念上讲,Sitecore 本质上是一种软件,它使数据库对用户更加友好,并定义了技术人员和非技术人员都可以理解和遵循的结构。你在说什么违背了ACID的概念, 数据库 locks和 transactions .我在下面对您的步骤进行了更多技术(数据库)注释的内联评论:
- 重建自定义索引... - 锁定数据库中的项目并开始事务
- 同时......:添加一个 sitecore 项目...... - 针对项目运行的单独事务,但不影响在步骤 1 中启动的事务正在使用的锁定集
- 同时...:访问自定义... - 在步骤 2 中的事务之后运行另一个事务,因此包括所有项目的计数(包括锁定的集合和新添加的项目)
- 索引完成后... - 事务 1 完成并释放锁;如果不从索引中计算,从自定义索引中获取项目计数返回的计数与项目计数不同(后者更大,因为添加了新项目)
因此,第 3 步返回新的项目计数,第 4 步返回原始项目数。
关于search - 使用 Lucene 的 Sitecore 7.2 中的热插拔索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24862521/