2013-09-30 23 views
5

Sitecore 6.2 Content DeliveryサーバーのカスタムLuceneインデックスが正しくないようです。だから私は私のカスタムインデックスのすべてを再構築する必要があると思う。それ、どうやったら出来るの?共有ソースIndex Viewerモジュールを使用するだけですか?今はCDサーバーにインストールされていますが、何らかの理由でそれが動作していません。インデックスビューアでカスタムインデックスを選択すると何も起こりません。だから私はそのようにインデックスを再構築することはできません。ハードドライブからインデックスファイルを削除するだけですか?もしそうなら、Luceneはどれくらい早くそれらを再構築しますか?Sitecoreコンテンツ配信サーバーでカスタムLuceneインデックスを再構築するにはどうすればよいですか?

+0

現在、インデックスビューアには、リモートでインデックスを再構築する機能(CDのCMから)はありません。しかし、私は可能なバージョンで作業しています。 –

答えて

2

サイトコア6.6更新3または4(それがあった1覚えていない)ので、あなたはサイトコアコントロールパネルからカスタムインデックスを再構築することができます。

すべての以前のバージョンでは、コードから再構築するか、Sitecoreのカスタムモジュールを使用する必要がありました。インデックスファイルの削除は機能しません。

カスタムサイトコアのLuceneインデックスを再構築するための最も簡単なコードは次のとおりです。

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

ブログ記事"Troubleshooting Sitecore Lucene search and indexing"インデックスを再構築することは、あなたの問題を解決することはできません場合は、あなたを助けることができます。

0

Index Viewerを何も起こらずにクリックすると、通常、Index Viewerパッケージの特定のファイルがCDサーバーに展開されていないことが示されます。このための最も簡単な修正 - CDサーバーで/ sitecoreを実行している場合 - CDサーバーに直接パッケージを再インストールするだけです。その後、IndexViewerが動作します。

CDサーバーに/ 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」である

  1. が一つだけのフィールドを持つテンプレートで設定コンテンツアイテムを作成し、「インデックスを再構築する」と言う、アイテムのパスの例は次のようになります。 "/sitecore/content/mysite/config/index再構築フラグ "
  2. Runメソッドを持つIndexRebuilderクラスを作成します。「インデックス再構築フラグ」項目を(コンテキストデータベースから)チェックし、「再構築インデックス」フィールド値が「1」に等しい場合、サーバー上のインデックスを再構築します。再構築が正常に完了したら、項目フィールドの値を「0」に更新します。
  3. IndexRebuilderクラスを指すスケジュールされたエージェントをセットアップします。例については、

    <剤型は= "MyAssembly.IndexRebuilder、MyAssembly" 方法は= "実行" インターバル間隔は "午後12時00分00秒" であること= "午後12時00分00秒"/>

    お知らせデフォルトでは、コンテンツ管理サーバー上のエージェントをオフにします。ビルドとデプロイメントプロセスでは、この値を "00:05:00"とする必要があります。これにより、エージェントは5分ごとに実行されます。そこから

、単にコンテンツ配信データベース(ウェブ)とコンテンツ配信サーバ上のインデックスにマスター・データベースから「インデックス再構築フラグ」の項目を公開し、コンテンツ配信サーバ上のインデックスを再構築するために開始する必要があります5分で再建。

関連する問題