Bild-Schulung-Solr-in-a-Nutshell

Document Routing in Solr – Update

Mein Kollege Daniel Wrigley hatte vor gut einem Jahr bereits über das Document-Routing in Solr in einem Blogbeitrag berichtet. In diesem Jahr sind weitere Solr Versionen mit Anpassungen, Erweiterungen und neuen Features veröffentlicht worden. Die Änderungen betreffen auch das mit Solr 4.1 eingeführte Document Routing. Mit der Solr Version 4.5 wurde dieses Feature überarbeitet und vereinfacht. Dies möchte ich nun in diesem Blog vorstellen.

Das “neue” Document Routing

An dem grundlegenden Mechanismus vom Document Routing hat sich nichts geändert. Solr stellt weiterhin die beiden Routing Varianten „implicit“ und „compositeId“ zur Verfügung, wobei „implicit“ weiterhin die Default-Einstellung ist. Ändern kann man diese Variante nun beim Erstellen einer Collection, indem man den Parameter „router.name“ setzt.

https://localhost:8983/solr/admin/collections?action=CREATE&name=myCollection&...amp;router.name=compositeId

Bei der Variante „compositeId“ wertet Solr bei der Indexierung weiterhin die Dokument-IDs aus, um Dokumente mit dem gleichen Präfix im gleichen Shard zu indexieren. Zum Beispiel landen Dokumente mit den IDs „SPORT!123“ und „SPORT!234“ in einem Shard. Es ist dabei weiterhin freigestellt, was die Präfixe sind. Sie müssen nicht zwingend eine Kategorie, wie in meinem Beispiel, widerspiegeln.
Für die Suche wurde der Parameter „shard.keys“ durch „_route_“ ersetzt. Der „shard.keys“ Parameter wird in einer der kommenden Solr Releases entfernt, daher sollte man, wenn möglich, auf „_route“ umsteigen. Dieser neue Parameter reiht sich in die „magischen“ Variablen von Solr wie „_val_“, „_version_“ oder „_root_“ ein und wird zukünftig genutzt, um in der Suchanfrage den Shard zu definieren, in dem gesucht werden soll.
Folgender Request würde in dem Shard suchen, in dem die Sport-Dokumente gelandet sind.

https://localhost:8983/solr/select?q=*:*&_route_=SPORT!

Solche Suchanfragen können die Performance verbessern, da weniger Shards durchsucht werden und somit auch weniger Netzwerklast erzeugt wird.

Fazit

Auch wenn sich augenscheinlich nicht so viel geändert hat, ist die Nutzung vom Document Routing nun etwas intuitiver geworden.
Document Routing ist dabei nicht das Wundermittel, um die Suchperformance zu steigern, aber es hilft definitiv, um die Ressourcen in einem Solr Cluster weise bzw. gezielt zu nutzen.

Weiterführende Informationen:

Markus Klose