Apache Solr
Jeder der einmal größere Projekte mit der drupalinternen Node-Suche realisiert hat wird feststellen:
Es gibt viel zu verbessern.
So ist die Drupalsuche Unperformant (bei jedes Suchanfrage werden viele SQL-Querys abgesetzt), zeigt oft irrelevente Treffer an, und bietet grundlegende Features, wie Content Types aus der Suche auszuschliessen, nicht.
Die Lösung: Apache Solr. Apache Solr ist ein eigenständiger Server, den man auf einem belieben Server, auf dem man root-Zugriff hat, installieren kann. Apache Solr setzt auf der Lucene Textmustererkennungengine auf und ist in Java geschrieben.
Wer eine Anleitung sehen möchte wie man ApacheSolr auf Debian aufsetzt kann sich diese Videoanleitung (von mir;)) (in Englisch) angucken.
Wer seinen Solr-Server vor Fremd-Zugriffen schützen möchte, kann via iptables den Zugriff auf Port 8080 nur von localhost (oder der ip des Drupal-Servers) erlauben.
Nachdem die Vorraussetzung auf dem Server jetzt geschaffen sind, müssen wie ApacheSolr noch in Drupal einbinden.
Dazu gibt es das Modul apachesolr, geschrieben von Robert Douglass, den ich hier zu seinem Modul ausfrage.
Nachdem man apachesolr herruntergeladen hat, und wie üblich in den modules-Ordner kopiert hat, muss man noch die beiden Dateien solrconfig.xml und schema.xml , die sich im Modulordner befinden, auf dem Search-Server in das Solr Konfigurationsverzeichnis kopieren (auch im Video beschrieben)
Jetzt geht man auf /admin/settings/apachesolr und stellt dort den Pfad und den Port ein, auf dem der Search-Server erreichbar ist. Wenn man meiner Anleitung in dem Video folgt, ist es der Port 8080 (Standart Tomcat-Port). Am besten klick man sich jetzt durch die weiteren Konfigurationsoptionen. Interessant sind z.B. "Enable spellchecker and suggestions" (Funktioniert nur in Enlisch, an der Lokalisierung seitens Solr wird gearbeitet).
Wenn man ApacheSolr als Standartsuche (also die schlechte Node-Suche überschreiben) verwenden möchste, muss man unter "Advanced configuration" noch "Make Apache Solr Search the default" auf enabled setzen.
In den anderen Tabs kann man noch die Relevanz von Felder festlegen, die Filter für die Faceted Search festlegen, und wenn man Fertig ist sollte man im Tab "Search Index" Reindex all Content klicken, und schon wird im Lauf der nächsten Cron läufe der gesamte Content der Seite an den Solr-Server geschickt.
Damit Faceted Search, das Filtern der Suchergebnisse nach Eingabe der Suchanfrage in einem Block (ist schwer zu erklären, aber sehr cool), funktioniert müssen wir noch in den Block-Settings (/admin/build/block) die Apache Solr * Blöcke, mit deren Kriterien ihr wollt dass die Besucher ihre Suchr filtern können, in eine Region eurer Wahl ziehen, und schon läuft Apache Solr mit Faceted Search auf eurer Drupal-Site!
- Anmelden oder Registrieren um Kommentare zu schreiben
Iptables ist ein wenig mit
am 19.12.2009 - 19:59 Uhr
Iptables ist ein wenig mit Kanonen auf Spatzen geschossen. Wer zugreifen darf und wer nicht lässt sich einfach auch im Tomcat konfigurieren.
--
mortendk: everytime you use contemplate... Thor is striking down from above with his mighty hammer - crushing and killing a kitten!
webseiter.de
Suchmaschinenoptimierung (SEO) & Drupal
angesichts der tatsache dass
am 19.12.2009 - 20:54 Uhr
angesichts der tatsache dass mit iptables quasi auf jedem server gearbeitet wird, alleine schon um rechnenzentrumsinterne verwaltungsports nicht nach außen zu exposen, halt ich iptables für die einfachste lösung, aber du kannst ja gerne einen link zum tomcat permissions management posten, und den kann ich dann ja einbauen.