2013-09-30 48 views
5

我的Sitecore 6.2 Content Delivery服務器上的自定義Lucene索引似乎不正確。所以我想我需要重建所有3個自定義索引。我怎麼做?我只需要使用共享源索引查看器模塊?現在我已經安裝在我的CD服務器上,但由於某種原因,它無法正常工作。當我在索引查看器中選擇我的自定義索引時 - 沒有任何反應所以我不能以這種方式重建索引。我可以從硬盤刪除索引文件嗎?如果是這樣,Lucene會重建它們多快?如何重建Sitecore內容交付服務器上的自定義Lucene索引?

+0

目前索引查看器不具備遠程重建索引(即從CD上的CM)重建索引的功能。不過,我正在研究一個可能的版本。 –

回答

2

由於Sitecore的6.6更新3或4(不記得是哪個呢),你可以從Sitecore的控制面板重建自定義索引。

在以前的所有版本中,您需要使用代碼或使用自定義模塊來重建它,以便Sitecore。刪除索引文件將不起作用。

重建定製Sitecore的Lucene索引最簡單的代碼是:

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

博客文章"Troubleshooting Sitecore Lucene search and indexing"可以幫助你,如果重建索引不會解決你的問題。

0

單擊索引查看器時沒有任何事情發生,通常表示索引查看器軟件包的某些文件尚未部署到您的CD服務器。最簡單的解決方法 - 如果你的CD /服務器上運行了/ sitecore - 就是直接在CD服務器上重新安裝軟件包。在此之後,IndexViewer將起作用。

如果您的CD服務器上沒有/ sitecore(Sitecore建議刪除此內容或至少阻止對其的訪問),則問題會變得更加嚴重。我會建議設置一個頁面/ web服務或類似的,執行Maras建議的代碼 - 這樣,當你需要時,你總是可以觸發索引重建。

+2

支持工具箱中有一個重建索引腳本。這可以有選擇地部署:http://marketplace.sitecore.net/en/Modules/Sitecore_Support_Toolbox.aspx – jammykam

+0

很好。之前沒有看到過:-) –

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

1

我在其中一個項目中遇到過相同的需求。這裏是我的解決辦法:

  1. 創建與只有一個字段的模板配置的內容項目,說:「重建索引」,默認值爲「1」,例如項目路徑可能是:「/Sitecore的/內容/ mysite的/配置/索引重建標誌
  2. 創建具有運行方法的IndexRebuilder類。在Run方法中,如果「重建索引」字段值等於「1」,請檢查「索引重建標記」項目(來自上下文數據庫)並重建服務器上的索引。成功重建後,將項目字段值更新爲「0」。
  3. 設置一個指向IndexRebuilder類的預定代理程序。對於實施例,

    <代理類型= 「MyAssembly.IndexRebuilder,MyAssembly程序」 方法= 「運行」 間隔= 「00:00:00」/ >

    注意,間隔爲 「00:00:00」默認情況下,關閉內容管理服務器上的代理。您的構建和部署過程應該將此值設置爲「00:05:00」,它允許代理每5分鐘運行一次。

從那裏,需要重新建立索引,內容分發服務器上,剛剛發佈了「索引重建標誌」從主數據庫項目的內容交付數據庫(網頁)和內容交付服務器上的指數應該開始在5分鐘內重建。

相關問題