Heute ist Saturday, der 21. December 2024

Einrichtung der Indexierung für Solr über mksearch

Nach dem im letzten Post erläutert wurde, wie Solr eingerichtet wird, können wir nun mksearch über den Extension-Manager installieren und einen Core in Solr einrichten.

In der Multi-Core-Umgebung, die unter [solrhome] eingerichtet wurde, habe ich einen vorhandenen Core in "cfc" umbenannt. Also einfach den Verzeichnisnamen geändert. Danach musste ich den neuen Namen noch in der solr.xml eintragen.

Damit dieser Core optimal mit mksearch zusammenarbeitet, sollte noch die vorbereitete Konfiguration in den Core-Order kopiert werden. Die Dateien findet man in mksearch im Verzeichnis solr/conf/. Für Solr 4 muss man die Datei solrconfig-4.0.xml verwenden und in solrconfig.xml umbenennen.

Nachdem die Dateien in das Verzeichnis [solrhome]cfc/conf kopiert waren, habe ich Jetty neu gestartet. Der Solr-Admin hat den neuen Core nun angezeigt.

In TYPO3 wird nun zunächst ein SysFolder für die Daten von mksearch angelegt. Anschließend das Backend-Modul von mksearch aufrufen und den neuen SysFolder im Seitenbaum anklicken. Nun kann man im ersten Schritt einen neuen Index anlegen. Der Index entspricht einem Core in Solr. Man vergibt einen Namen, wählt Apache Solr als Suchmaschine aus und trägt die Verbindungsdaten für den Solr-Core ein. Zusätzlich muss man bei Solr noch die Version angeben, da sich ab Solr 4.0 die API etwas geändert hat. Wenn alles korrekt eingeben wurde, kann man das Formular speichern und schließen. Das Backend-Modul sollte bei erfolgreicher Kontaktaufnahme ein grünes Icon vor dem Core anzeigen.

Nun wollte ich zunächst die News-Datensätze über die Suche verfügbar machen. In mksearch legt man für jeden Datentyp einen sogenannten Indexer an, der die Ausgangsdaten sammelt und für die Indexierung vorbereitet. Die Indexer werden aber nicht direkt mit den Cores verbunden, sondern über Indexer Compositites. Für die meisten Anwendungsfälle ist pro Core nur ein Composite notwendig. Also haben ich ein Composite angelegt und mit dem Index verbunden. Anschließend habe ich den Indexer angelegt und beim Extension Key "tt_news" gewählt. Als Content-Type sind dann nur die News vorhanden.

Für einen leichteren Start füllt mksearch das Feld für die Konfiguration des Indexers schon mit sinnvollen Daten und einigen Hilfetexten. Man kann in dieser Konfiguration vielfältige Einstellung für die Indexierung treffen. Bei den News könnte man bspw. die Indexierung auf bestimmte Kategorien eingrenzen oder auch die Feldzuordnung ändern bzw. erweitern.

Für den Start ist das aber nicht notwendig. Mit der Startkonfiguration werden alle Newsdatensätze indexiert. Das kann man manuell über das BE-Modul von mksearch erledigen. Dazu öffnet man das Tab Indexer-Queue. Mksearch zeigt alle Tabellen an, die von den konfigurierten Indexern überwacht werden. Bei tt_news habe ich einen Reset durchgeführt und damit alle vorhandenen News-Datensätze in die Warteschlange gelegt.

Am Ende der Seite hat man die Möglichkeit die Abarbeitung der Queue manuell zu starten. Das ist eine gute Möglichkeit die Indexierung zu testen. Bei mir hat es gut funktioniert. Über den Solr-Admin konnte ich sehen, daß nach und nach Daten in den Core übertragen wurden.

Für den Livebetrieb habe ich natürlich einen Scheduler-Task eingerichtet. Kleiner Tipp: es empfiehlt sich, die Extension devlog zu installieren. Mksearch schreibt sehr ausführliche Information in das Log.

Im nächsten Beitrag wird es dann um die Einrichtung des Frontend-Plugins gehen.

Kommentare

No comments
Add comment
*









*

*

* - required field