Die gewichtete Suche "boostet" standardmässig bei einer Suche nach mehreren Begriffen (z.B. Hans Andersen) solche Suchergebnisse, die innerhalb eines Feldes den direkten Suchbegriff (Hans Andersen) enthalten. Solr führt also im Hintergrund auch einen sog. "phrase search" durch (so als ob der/die Nutzer:in die Suchbegriffe in Anführungszeichen eingeschlossen hätte: "Hans Andersen") und erhöht für gefundene Dokumente das Ranking innerhalb der Suchergebnisse.
Wenn ein Dokument allerdings stattdessen den Begriff Hans Christian Andersen oder Andersen, Hans enthält, so schlägt Solr's reguläre Phrasensuche nach "Hans Andersen" fehl. Mit Unterstützung für den "phrase slop" lässt sich dies verbessern, indem Solr bei einer Phrasensuche nach "Hans Andersen" auch Vorkommen wie Hans Christian Andersen oder Andersen, Hans findet. Die Solr Doku beschreibt dies so:
[A] phrase query can have a 'slop,' which is the distance between the terms of the query while still considering it a phrase match
Gibt man also z.B. einen "phrase slop" von 3 an, so würden auch gemeinsame Vorkommen von Hans und Andersen bei der Phrasensuche gefunden (und entsprechend geboostet) werden, solange sich höchstens 2 Begriffe zwischen den beiden Suchbegriffen befinden.
Zur individuellen Anpassung des "phrase slop" Parameters bräuchte es:
in der Konfiguration eine zusätzliche Option
in Opus\Search\Query.php entsprechende Getter & Setter; falls kein Wert explizit gesetzt wurde, würde der Getter den Wert aus der Konfiguration zurückgeben
in Opus\Search\Solr\Solarium\Adapter.php->applyParametersOnQuery() müsste $edismax->setPhraseSlop() gesetzt werden
ein Test in AdapterSearchingTest der zeigt, dass eine gewichtete Suche nach Hans Andersen mit "phrase slop" auch z.B. Hans Christian Andersen oder Andersen, Hans findet.
Die gewichtete Suche "boostet" standardmässig bei einer Suche nach mehreren Begriffen (z.B.
Hans Andersen
) solche Suchergebnisse, die innerhalb eines Feldes den direkten Suchbegriff (Hans Andersen
) enthalten. Solr führt also im Hintergrund auch einen sog. "phrase search" durch (so als ob der/die Nutzer:in die Suchbegriffe in Anführungszeichen eingeschlossen hätte:"Hans Andersen"
) und erhöht für gefundene Dokumente das Ranking innerhalb der Suchergebnisse.Wenn ein Dokument allerdings stattdessen den Begriff
Hans Christian Andersen
oderAndersen, Hans
enthält, so schlägt Solr's reguläre Phrasensuche nach"Hans Andersen"
fehl. Mit Unterstützung für den "phrase slop" lässt sich dies verbessern, indem Solr bei einer Phrasensuche nach"Hans Andersen"
auch Vorkommen wieHans Christian Andersen
oderAndersen, Hans
findet. Die Solr Doku beschreibt dies so:Gibt man also z.B. einen "phrase slop" von
3
an, so würden auch gemeinsame Vorkommen vonHans
undAndersen
bei der Phrasensuche gefunden (und entsprechend geboostet) werden, solange sich höchstens 2 Begriffe zwischen den beiden Suchbegriffen befinden.Zur individuellen Anpassung des "phrase slop" Parameters bräuchte es:
Opus\Search\Query.php
entsprechende Getter & Setter; falls kein Wert explizit gesetzt wurde, würde der Getter den Wert aus der Konfiguration zurückgebenOpus\Search\Solr\Solarium\Adapter.php->applyParametersOnQuery()
müsste$edismax->setPhraseSlop()
gesetzt werdenAdapterSearchingTest
der zeigt, dass eine gewichtete Suche nachHans Andersen
mit "phrase slop" auch z.B.Hans Christian Andersen
oderAndersen, Hans
findet.