You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Aktuell wird standardmässig für eine gewichtete SucheAND als "default operator" Parameter verwendet. D.h. bei einer Suche nach mehreren Suchbegriffen führt Solr für diese eine UND-Suche aus, sprich alle Begriffe müssen in demselben Feld eines Dokuments vorkommen, damit das Dokument in den Suchergebnissen zurückgegeben wird.
Mit der Standardsuche (ohne Gewichtung einzelner Felder) hat OPUS nicht direkt über alle Felder sondern in sog. "catchall" Feldern (text und simple) gesucht, welche die Inhalte der einzelnen Felder zusammenfassten. Selbst wenn zwei Suchbegriffe ursprünglich aus zwei unterschiedlichen Feldern eines Dokumente stammten, kamen sie im "catchall" Feld dann gemeinsam vor. Damit entsprach die standardmässig verwendete UND-Suche quasi einer ODER-Suche über die einzelnen Felder.
Bei der gewichteten Suche gibt es keine "catchall" Felder mehr. Daher findet eine UND-Suche nun wirklich nur noch Dokumente, in denen alle gesuchten Begriffe innerhalb eines Feldes vorkommen. Damit werden weniger Dokumente gefunden als zuvor. Wahrscheinlich wäre es für die gewichtete Suche besser, standardmässig eine ODER-Suche zu verwenden. Hierbei würden mehr Dokumente gefunden werden, doch Dokumente mit Feldern, in denen alle gesuchten Begriffe vorkommen, würden innerhalb der Suchergebnisse ganz oben stehen.
Für die Unterstützung des "default operator" Parameters bräuchte es:
in der Konfiguration eine zusätzliche Option
in Opus\Search\Query.php müsste der bereits existierende "Magic"-Getter getUnion() in einen "echten" Getter umgewandelt werden, sodass, falls kein Wert explizit gesetzt wurde, der Getter den Wert aus der Konfiguration zurückgeben würde
ein Test in AdapterSearchingTest der zeigt, dass bei einer gewichteten Suche nach mehreren Suchbegriffen mit "default operator" AND auch nur Dokumente gefunden werden, in denen alle gesuchten Begriffe innerhalb eines Felds vorkommen.
ein analoger Test in AdapterSearchingTest mit einer gewichteten Suche nach mehreren Suchbegriffen mit "default operator" OR
The text was updated successfully, but these errors were encountered:
Die AdapterSearchingTest Tests testWeightedAndSearchWithoutBoosts() und testWeightedOrSearchWithoutBoosts() testen bereits das Verhalten einer gewichteten UND- bzw. ODER-Suche. Es wird bislang nur nicht getestet, ob eine entsprechende Konfigurationsoption auch erfolgreich ausgelesen & gesetzt wird.
Aktuell wird standardmässig für eine gewichtete Suche
AND
als "default operator" Parameter verwendet. D.h. bei einer Suche nach mehreren Suchbegriffen führt Solr für diese eine UND-Suche aus, sprich alle Begriffe müssen in demselben Feld eines Dokuments vorkommen, damit das Dokument in den Suchergebnissen zurückgegeben wird.Mit der Standardsuche (ohne Gewichtung einzelner Felder) hat OPUS nicht direkt über alle Felder sondern in sog. "catchall" Feldern (
text
undsimple
) gesucht, welche die Inhalte der einzelnen Felder zusammenfassten. Selbst wenn zwei Suchbegriffe ursprünglich aus zwei unterschiedlichen Feldern eines Dokumente stammten, kamen sie im "catchall" Feld dann gemeinsam vor. Damit entsprach die standardmässig verwendete UND-Suche quasi einer ODER-Suche über die einzelnen Felder.Bei der gewichteten Suche gibt es keine "catchall" Felder mehr. Daher findet eine UND-Suche nun wirklich nur noch Dokumente, in denen alle gesuchten Begriffe innerhalb eines Feldes vorkommen. Damit werden weniger Dokumente gefunden als zuvor. Wahrscheinlich wäre es für die gewichtete Suche besser, standardmässig eine ODER-Suche zu verwenden. Hierbei würden mehr Dokumente gefunden werden, doch Dokumente mit Feldern, in denen alle gesuchten Begriffe vorkommen, würden innerhalb der Suchergebnisse ganz oben stehen.
Für die Unterstützung des "default operator" Parameters bräuchte es:
Opus\Search\Query.php
müsste der bereits existierende "Magic"-GettergetUnion()
in einen "echten" Getter umgewandelt werden, sodass, falls kein Wert explizit gesetzt wurde, der Getter den Wert aus der Konfiguration zurückgeben würdeAdapterSearchingTest
der zeigt, dass bei einer gewichteten Suche nach mehreren Suchbegriffen mit "default operator"AND
auch nur Dokumente gefunden werden, in denen alle gesuchten Begriffe innerhalb eines Felds vorkommen.AdapterSearchingTest
mit einer gewichteten Suche nach mehreren Suchbegriffen mit "default operator"OR
The text was updated successfully, but these errors were encountered: