2013-09-30 6 views
5

Der benutzerdefinierte Lucene-Index auf meinem Sitecore 6.2 Content Delivery-Server scheint nicht richtig zu sein. Also ich denke, ich muss alle 3 meiner benutzerdefinierten Indizes neu erstellen. Wie mache ich das? Muss ich nur das gemeinsam genutzte Quell-Index-Viewer-Modul verwenden? Im Moment habe ich das auf meinem CD-Server installiert, aber aus irgendeinem Grund funktioniert es nicht. Wenn ich meinen benutzerdefinierten Index im Index Viewer auswähle, passiert nichts. Also kann ich den Index nicht auf diese Weise wiederherstellen. Kann ich die Indexdateien einfach von der Festplatte löschen? Wenn ja, wie schnell wird Lucene sie wieder aufbauen?Wie kann ich einen benutzerdefinierten Lucene-Index auf einem Sitecore-Inhaltszustellungsserver neu erstellen?

+0

Momentan kann der Index Viewer die Indizes nicht remote wiederherstellen (dh von CM auf CD). Ich arbeite jedoch an einer Version, wo es möglich ist. –

Antwort

2

Seit Sitecore 6.6 Update 3 oder 4 (kann mich nicht erinnern, welche es war) Sie Ihre benutzerdefinierten Indizes aus der Sitecores Control Panel wieder aufbauen können.

In allen vorherigen Versionen müssen Sie es aus Code oder benutzerdefinierten Modulen für Sitecore neu erstellen. Löschen von Indexdateien funktioniert nicht.

Der einfachste Code für den Wiederaufbau benutzerdefinierten Sitecores Lucene Index ist:

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

Die Blog-Post "Troubleshooting Sitecore Lucene search and indexing" können Ihnen helfen, wenn Sie den Index Wiederaufbau wird nicht Ihr Problem lösen.

0

Wenn Sie auf Index Viewer klicken, ohne dass etwas passiert, wird normalerweise angezeigt, dass bestimmte Dateien des Index Viewer-Pakets nicht auf Ihrem CD-Server bereitgestellt wurden. Die einfachste Lösung für dieses Problem - wenn Sie/sitecore auf dem CD-Server ausführen - ist, das Paket einfach neu auf dem CD-Server zu installieren. Danach wird IndexViewer funktionieren.

Wenn Sie keinen/sitecore auf Ihrem CD-Server haben (Sitecore empfiehlt, dies zu entfernen oder zumindest den Zugriff darauf zu sperren), wird es problematischer. Ich würde empfehlen, eine Seite/einen Webservice o.ä. einzurichten, die den Code ausführt, den Maras oben vorgeschlagen hat - auf diese Weise können Sie immer eine Indexrekonstruktion auslösen, wenn Sie sie brauchen.

+2

In der Support-Toolbox befindet sich ein Index-Skript zum Wiederaufbau. Dies könnte selektiv bereitgestellt werden: http://marketplace.sitecore.net/en/Modules/Sitecore_Support_Toolbox.aspx – jammykam

+0

Nizza. Hatte das vorher nicht gesehen :-) –

2

Wie bereits erwähnt, erforderten frühere Versionen von Sitecore 6.x benutzerdefinierte Indizes, die entweder mit IndexViewer oder mit benutzerdefiniertem Code neu erstellt werden mussten. Ich glaube an eine Revision von 6.5. Die Systemsteuerung> Datenbank> Suchindizes neu erstellen begann mit der Aufnahme von benutzerdefinierten Indizes, so dass IndexViewer nicht mehr benötigt wird (aber trotzdem funktionieren sollte).

Zu Ihrer spezifischen Frage, auf meinen CD-Servern habe ich ein Rebuild-Skript, das direkt aufgerufen werden kann, um Suchindizes neu zu erstellen. Ich vergesse, wo ich dieses Skript gefunden habe (glaube, es war etwas, das von Alex Shyba bei Sitecore veröffentlicht wurde). Sie finden die Details dieses Skripts unter https://gist.github.com/Refactored/6776801

Allerdings glaube ich, dass Sie ein anderes Problem haben, das angesprochen werden muss. Wenn Ihre CD-Server keine Änderungen erkennen und daher nicht aktualisiert werden, liegt ein Konfigurationsproblem vor. Ich würde mit diesem Artikel bei der Fehlerbehebung von Indexproblemen beginnen: http://sitecoreblog.alexshyba.com/2011/04/search-index-troubleshooting.html

1

Ich bin in einem meiner Projekte auf die gleiche Anforderung gestoßen. Hier war meine Lösung:

  1. Erstellen eines Konfigurationsinhaltselement mit einer Vorlage, die nur ein Feld hat, sagen: „Index Rebuild“ Standardwert „1“ ist, beispielsweise der Artikel Weg könnte sein: "/sitecore/content/mysite/config/index rebuild flag "
  2. Erstellen Sie eine IndexRebuilder-Klasse mit einer Run-Methode.Überprüfen Sie innerhalb der Run-Methode den Eintrag "Indexrekonstruktionsflag" (aus der Kontextdatenbank) und erstellen Sie den Index auf dem Server neu, wenn der Feldwert "Erneut erstellen" gleich "1" ist. Aktualisieren Sie den Artikelfeldwert nach dem erfolgreichen Neuaufbau auf "0".
  3. Richten Sie einen geplanten Agenten ein, der auf die IndexRecuilder-Klasse verweist. Für Beispiele,

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

    bemerken, dass das Intervall "00:00:00" Standardmäßig wird der Agent auf dem Content Management Server deaktiviert. Ihr Build- und Bereitstellungsprozess sollte diesen Wert auf "00:05:00" setzen, damit der Agent alle 5 Minuten ausgeführt werden kann.

Von dort Index auf Content-Delivery-Server neu zu erstellen, veröffentlichen nur der "Index Flagge wieder aufzubauen" Artikel von Master-Datenbank auf die Content-Delivery-Datenbank (Web) und den Index auf Ihrem Content-Delivery-Server gestartet werden sollte Wiederaufbau in 5 Minuten.

Verwandte Themen