Easy solr

Wie installiert man eigentlich einen apache solr Server?

Die eigentlich einzige Suchmaschine für TYPO3 die überzeugende Ergebnisse liefert ist solr.

Dazu gibt es eine hervorragende Extension (Apache Solr for TYPO3 - Enterprise Search) mit der man eigentlich fast rundum glücklich ist . Wenn man dann noch dann noch seine Dateien indexierung möchte, verwendet solrfal. Die gibt es hier.

Aber Moment, man braucht doch dazu einen solr-Server wie funktioniert denn das?

Ja, hier wird es ein bisschen knifflig denn damit der solr erst mal läuft, brauch man java, tomcat und solr und alles in den richtigen Versionen. Das muss dann an den richtigen Stellen im System installiert werden und wenn man alles richtig gemacht hat, läuft das ganze bis zum nächsten Update.

Juhu. Beim nächsten Update ist alles irgendwie anders und den Teil der gleich ist, habe ich falsch dokumentiert (oder in meinem Fall überhaupt nicht, dann das ist ja so einfach, das kann man nicht vergessen)

Hört sich uncool an – ist es auch …

Aber es gibt Docker

Für alle die Docker nicht kennen hier in kürze: Docker ist ein Container in den man zum Beispiel die oben genannten Komponenten installieren kann. Dazu packt noch ein rudimentäteres Mini-Linux und fertig ist der solr-Server. Wenn jetzt eine der Komponenten aktualisiert wird, wird einfach ein neuer Container mit dem neuen Paket erstellt. Das Ganze läuft dann wie ein einzige Programm.

Aber wo soll denn hier der Vorteil sein?

Ganz ein: Es gibt einen offiziellen solr-Container der von den solr-Machern gepflegt wird. Hier muss sich der DevOp nicht drum kümmern ob alles richtig zusammen spielt. Einfach runterladen und starten – fertig (Naja fast, aber viel mehr ist es nicht).

Nochmal von vorn.

Bevor wir mit Docker herum spielen, müssen wir das installieren. Wie das genau geht, ist hier beschrieben.

Wir brauchen also ein solr mit Zubehör. Wer solrfal am start hat, braucht noch tika. In der oben genannten Extension finden wir ein hervoragendes setup mit dessen Hilfe wir eine super einfache solr-Installation bauen können.

Die Details finden sich hier: https://github.com/mxsteini/solrForTYPO3

Herunterladen und starten

git clone https://github.com/michaelstein-itb/solr-server-typo3.git
cd solr-server-typo3
docker compose up -d
# Im folgendenden wird ein Netzwerk mit 2 Server aufegspannt.
# Intern heißen die Server "solr" und "tika"


services:
# 
    solr:
        # wir möchten, dass der solr immer neu gestartet wird wenn er abgestürzt ist.
        restart: always

        # so lautet der Name des images für unseren solr
        image: dbgrs/solr
        # weil es das image noch nicht gibt, müssen wir es beim ersten Start selbst bauen
        build:
            context: .
            # Die Bauanleitung steht hier
            dockerfile: ./SolrServer/Dockerfile

        # Wir möchten dass der solr nur auf dem lokalen Rechner erreichbar ist. 
        ports:
            - 127.0.0.1:8983:8983

        # in ./data stehen die Indexe
        volumes:
            - ./data:/var/solr/data/data

    tika:
        # Für tika können wir das offizielle image verwenden. Dieses wird beim ersten Start automatisch herunter geladen
        image: apache/tika:latest

        # wir möchten, dass der tika immer neu gestartet wird wenn er abgestürzt ist.
        restart: always

        # Auch der tika soll nur auf dem lokalen Rechner erreichbar sein
        ports:
            - 127.0.0.1:9998:9998


volumes:
    solr:

Und die Updates?

Bei tika ist das einfach. Immer wenn wir "docker compose restart" eintippen, schaut Docker nach ob es einen neuen tika gibt.

Beim solr müssen wir ein bisschen anders vorgehen.

Da wir hier von der solr Extension abhängig sind, sollten wir immer schauen, dass wir deren Dockerfile verwenden um den neuen Docker zu bauen.

Wer direkt mit dem solr Interface agieren möchte, entfernt die die "127.0.0.1:" und ruft dann diese auf:

docker compose stop && docker compose rm -f && docker compose build && docker compose up -d

Comments

No Comments

Write comment

* These fields are required