search - 使用 Lucene 的 Sitecore 7.2 中的热插拔索引

标签 search indexing lucene sitecore sitecore7.2

我正在试验新的 Sitecore 7.2 功能 SwitchOnRebuildLuceneIndex

显然,此功能允许我在重建索引的同时以只读模式访问我的索引。

在我重建索引的同时,有什么方法可以拥有一个完整的操作索引(不是只读的)?

我正在执行的测试如下:

1) 重建一个包含 30k 项的自定义索引(需要 30 秒)

2) 同时重建索引:添加 Sitecore 项目(通过代码)

3) 同时重建索引:访问自定义索引(通过代码)以获取项目数

4) 索引完成重建后:访问自定义索引(通过代码)以获取项目数

在第 3 步中,它返回原始项目计数 30000 在第 4 步中,它返回更新后的项目计数 30001

感谢帮助 斯泰利奥

最佳答案

我不相信这是可能的。从概念上讲,Sitecore 本质上是一种软件,它使数据库对用户更加友好,并定义了技术人员和非技术人员都可以理解和遵循的结构。你在说什么违背了ACID的概念, 数据库 lockstransactions .我在下面对您的步骤进行了更多技术(数据库)注释的内联评论:

  1. 重建自定义索引... - 锁定数据库中的项目并开始事务
  2. 同时......:添加一个 sitecore 项目...... - 针对项目运行的单独事务,但不影响在步骤 1 中启动的事务正在使用的锁定集
  3. 同时...:访问自定义... - 在步骤 2 中的事务之后运行另一个事务,因此包括所有项目的计数(包括锁定的集合和新添加的项目)
  4. 索引完成后... - 事务 1 完成并释放锁;如果不从索引中计算,从自定义索引中获取项目计数返回的计数与项目计数不同(后者更大,因为添加了新项目)

因此,第 3 步返回新的项目计数,第 4 步返回原始项目数。

关于search - 使用 Lucene 的 Sitecore 7.2 中的热插拔索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24862521/

相关文章:

sharepoint - 您能否在不提供密码的情况下在 SharePoint 中执行模拟搜索?

python - Numpy:对于一个数组中的每个元素,找到另一个数组中的索引

java - 如何使用 Hibernate Lucene 搜索对挪威语字符(Æ、Ø 和 Å)进行不区分大小写的排序?

javascript - 获取具有相同类的元素的索引

mysql - 当第一种情况发生时,Sql 两个多线程唯一忽略

java - 使用 Apache Tika 解析 iWorksDocument 时出现问题

java - 如何使用Java客户端查询Elasticsearch中的多值数组字段?

c - 在二维数组中搜索特定字符

list - Haskell:根据第一个值在列表中查找元组的第二个值

android - 无法按名称在 Play 商店中找到应用