Bild-Schulung-Solr-in-a-Nutshell

Saved Searches mit Apache Solr

Daniel Fuckner

Die sogenannten „Saved Searches“ sind eine Suchtechnik, bei der ein Anwender seine Suche „speichern“ kann. Jede Änderung im Index wird mit den Saved Searches abgeglichen. Sobald ein Produkt auf diese Suche passt, wird der Anwender (beispielsweise durch eine E-Mail) benachrichtigt. Dies ermöglicht ein nachträgliches Finden von Produkten, Artikeln etc. Diese Technik lohnt sich vor allem dann, wenn die Inhalte des Index häufig aktualisiert werden, wie es in Auktionsplattformen der Fall ist. Einige E-Shops bieten diese Funktionalität bereits an und wir können messen, dass das Interesse an Saved Searches kontinuierlich steigt. Daher stehen wir oft den Fragen gegenüber, ob Saved Searches mit Apache Solr umgesetzt werden können.

Saved Searches in Apache Solr

Grundlegend ist diese Funktionalität mit Lucene implementierbar. Dies haben sowohl Elasticsearch mit dem Percolator, als auch LucidWorks mit dem Alerting Service beweisen.
In dem Open Source Projekt Apache Solr ist bisher keine derartige Funktionalität als Standardkomponente integriert worden. Die Apache Solr Community ist sich jedoch bewusst, dass es einen Bedarf an diesem Feature gibt. Dies belegen einige Threads in der Solr Mailing Liste sowie entsprechende Jira Tickets.
Aktuell scheint der Focus der Entwicklung bei Apache Solr jedoch nicht auf dieser Funktionalität zu liegen, denn das Jira Ticket ist seit einiger Zeit nicht bearbeitet worden.

Luwak

Dass es keine Saved Searches als Standard-Komponente in Solr gibt, heißt jedoch nicht, dass es Saved Searches nicht in Solr gibt. Als Beispiel dient hier das Projekt Luwak:
Luwak wurde von der Firma Flax entwickelt und basiert auf Apache Solr. Mit Luwak lassen sich Saved Searches umsetzen. Luwak ist auf Github verfügbar und kann für eigene Tests und Entwicklungen genutzt werden.

Fazit

Aktuell gibt es keine Funktionalität, mit der man Out-of-the-Box Saved Searches in Solr umsetzen kann. Ich gehe auch davon aus, dass dies nicht in den nächsten Releases eingeführt werden wird. Wer dennoch nicht auf diese Funktionalität verzichten möchte, kann sich in der Zwischenzeit mit LUWAK weiterhelfen.

Weiterführende Links