我的Sitecore 6.2 Content Delivery服务器上的自定义Lucene索引似乎不对。所以我想我需要重建所有3个自定义索引。我怎么做?我只需要使用共享源索引查看器模块吗?现在我已经在我的CD服务器上安装了它,但由于某种原因它无法正常工作。当我在Index Viewer中选择我的自定义索引时 - 没有任何反应。所以我无法以这种方式重建索引。我可以从硬盘驱动器中删除索引文件吗?如果是这样,Lucene会以多快的速度重建它们?
答案 0 :(得分:3)
我最终联系了Sitecore支持,他们向我指出了名为Sitecore支持工具箱的共享源模块 - http://marketplace.sitecore.net/en/Modules/Sitecore_Support_Toolbox.aspx。安装完成后,我就可以轻松地重建索引了。
答案 1 :(得分:2)
由于 Sitecore 6.6 更新3或4(不记得是哪一个),您可以从 Sitecore控制面板重建自定义索引。
在以前的所有版本中,您需要从代码或使用 Sitecore 的自定义模块重建它。删除索引文件将不起作用。
重建自定义 Sitecore Lucene Index 的最简单代码是:
Sitecore.Search.SearchManager.GetIndex("your_index_name").Rebuild()
如果重建索引无法解决您的问题,则博文"Troubleshooting Sitecore Lucene search and indexing"可以为您提供帮助。
答案 2 :(得分: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
答案 3 :(得分:1)
我在其中一个项目中遇到过相同的要求。这是我的解决方案:
设置指向IndexRebuilder类的预定代理。例如,
< agent type =“MyAssembly.IndexRebuilder,MyAssembly”method =“Run”interval =“00:00:00”/>
请注意,默认情况下间隔为“00:00:00”,以关闭内容管理服务器上的代理。您的构建和部署过程应该将此值设置为“00:05:00”,这允许代理每5分钟运行一次。
从那里开始,要在内容交付服务器上重建索引,只需将“索引重建标志”项从master数据库发布到内容交付数据库(web),内容交付服务器上的索引应该在5分钟内开始重建。
答案 4 :(得分:0)
单击“索引查看器”并未发生任何事情,通常表示尚未将部署的Index Viewer程序包文件部署到CD服务器。最简单的解决方法 - 如果你在CD服务器上运行/ sitecore - 就是直接在CD服务器上重新安装软件包。在此之后,IndexViewer将工作。
如果您的CD服务器上没有/ sitecore(Sitecore建议删除它,或至少阻止访问它) - 它会变得更有问题。我建议设置一个页面/ webservice或类似的,执行上面Maras建议的代码 - 这样你总是可以在需要时触发索引重建。