6

我的 Sitecore 6.2 Content Delivery 服务器上的自定义 Lucene 索引似乎不正确。所以我认为我需要重建所有 3 个自定义索引。我怎么做?我只需要使用共享源索引查看器模块吗?现在我已经在我的 CD 服务器上安装了它,但是由于某种原因它无法正常工作。当我在索引查看器中选择我的自定义索引时 - 没有任何反应。所以我不能那样重建索引。我可以从硬盘驱动器中删除索引文件吗?如果是这样,Lucene 会以多快的速度重建它们?

4

5 回答 5

3

我最终联系了 Sitecore 支持,他们将我指向名为 Sitecore Support Toolbox 的共享源模块 - http://marketplace.sitecore.net/en/Modules/Sitecore_Support_Toolbox.aspx。一旦我安装了它,我就可以轻松地重建我的索引。

于 2013-10-03T12:40:37.083 回答
2

由于Sitecore 6.6更新 3 或 4(不记得是哪一个),您可以从Sitecore 控制面板重建您的自定义索引。

在所有以前的版本中,您需要从代码中重建它或使用Sitecore的自定义模块。删除索引文件将不起作用。

重建自定义Sitecore Lucene 索引的最简单代码是:

Sitecore.Search.SearchManager.GetIndex("your_index_name").Rebuild()

如果重建索引无法解决您的问题,博客文章“Sitecore Lucene 搜索和索引疑难解答”可以为您提供帮助。

于 2013-09-30T19:52:48.913 回答
2

如上所述,Sitecore 6.x 的早期版本需要使用 IndexViewer 或一些自定义代码来重建自定义索引。我相信在 6.5 版本中,控制面板 > 数据库 > 重建搜索索引开始包含自定义索引,因此不再需要 IndexViewer(但应该仍然可以工作)。

不过,对于您的具体问题,在我的 CD 服务器上,我有一个重建脚本,可以直接调用它来重建搜索索引。我忘记了我在哪里找到了这个脚本(相信它是由 Sitecore 的 Alex Shyba 发布的)。您可以在https://gist.github.com/Refactored/6776801找到此脚本的详细信息

但是,我相信您有一个不同的问题需要解决。如果您的 CD 服务器未检测到更改并因此未更新,则说明存在配置问题。在解决索引问题时,我将从这篇文章开始:http: //sitecoreblog.alexshyba.com/2011/04/search-index-troubleshooting.html

于 2013-10-01T10:58:15.597 回答
1

我在我的一个项目中遇到了同样的要求。这是我的解决方案:

  1. 使用只有一个字段的模板创建配置内容项,例如“ Rebuild Index ”,默认值为“1”,项目路径示例可以是:“ /sitecore/content/mysite/config/index rebuild flag
  2. 创建一个具有 Run 方法的 IndexRebuilder 类。在 Run 方法中,检查“索引重建标志”项(来自 Context 数据库),如果“重建索引”字段值等于“1”,则在服务器上重建索引。重建成功后,将项目字段值更新为“0”。
  3. 设置一个指向 IndexRebuilder 类的计划代理。举些例子,

    <agent type="MyAssembly.IndexRebuilder, MyAssembly" method="Run" interval="00:00:00"/>

    请注意,间隔默认为“00:00:00”,以关闭内容管理服务器上的代理。您的构建和部署过程应该将此值设置为“00:05:00”,这允许代理每 5 分钟运行一次。

从那里,要在内容交付服务器上重建索引,只需将“索引重建标志”项从主数据库发布到内容交付数据库 (Web),内容交付服务器上的索引应在 5 分钟内开始重建。

于 2013-10-03T04:46:08.397 回答
0

单击 Index Viewer 时没有任何反应,这通常表示 Index Viewer 软件包的某些文件尚未部署到您的 CD 服务器。最简单的解决方法——如果你确实在 CD 服务器上运行了 /sitecore——就是直接在 CD 服务器上重新安装软件包。在此之后,IndexViewer 将工作。

如果您的 CD 服务器上没有 /sitecore(Sitecore 建议删除它,或者至少阻止对它的访问) - 它会变得更加成问题。我建议设置一个页面/网络服务或类似的东西,执行 Maras 上面建议的代码 - 这样你就可以在需要时随时触发索引重建。

于 2013-10-01T08:14:47.343 回答