Bereiche über Funktionen in Solr 1.4

Solr 1.4 enthält eine neue Funktion, die Bereichsabfragen oder Bereichsfilter über beliebige Funktionen ermöglicht. Sie ist als Standard-Solr-QParser-Plugin implementiert und kann daher überall dort verwendet werden, wo die Standard-Solr-Query-Syntax akzeptiert wird, indem der Typ der Bereichsabfrage angegeben wird. Hier ist ein Beispiel für einen Filter, der die unteren und oberen Grenzen einer Funktion angibt:

fq={!frange l=0 u=2.2}log(sum(user_ranking,editor_ranking))

Ein weiterer interessanter Einsatzbereich von frange ist der Tausch von Speicher gegen Geschwindigkeit bei Bereichsabfragen für alle Arten von einwertigen Feldern. Sie können frange zum Beispiel für ein String-Feld verwenden, vorausgesetzt, es gibt nur einen Wert pro Feld und numerische Funktionen werden vermieden.

Hier ist zum Beispiel ein Filter, der nur Autoren zwischen martin und rowling zulässt und mit einer Standardbereichsabfrage angegeben wird:
fq=author_last_name:[martin TO rowling]

Und den gleichen Filter mit einer Funktionsbereichsabfrage(frange):
fq={!frange l=martin u=rowling}author_last_name

Dies kann zu erheblichen Leistungsverbesserungen bei Bereichsabfragen mit vielen Termen zwischen den Endpunkten führen, allerdings auf Kosten des Speichers für die nicht invertierte Form des Feldes (d.h. ein FieldCache-Eintrag – wie er auch für die Sortierung verwendet würde). Wenn das betreffende Feld bereits für die Sortierung oder andere Funktionsabfragen verwendet wird, entsteht kein zusätzlicher Speicheraufwand.

Das folgende Diagramm zeigt die Ergebnisse eines Tests von Bereichsabfragen im Vergleich zu Standardbereichsabfragen für ein Stringfeld mit 200.000 eindeutigen Werten. Frange war beispielsweise 14 Mal schneller bei der Ausführung einer Bereichsabfrage/eines Bereichsfilters, die/der 20% der Begriffe im Feld abdeckte. Bei engeren Bereichen, die weniger als 5 % der Werte abdeckten, schnitt die herkömmliche Bereichsabfrage besser ab.

Prozentsatz der abgedeckten Begriffe Schnellste Implementierung Beschleunigung (um wie viel schneller)
100% frange 43.32
20% frange 14.25
10% frange 8.07
5% frange 1.337
1% Abfrage des normalen Bereichs 3.59

Natürlich enthält Solr 1.4 auch die neue TrieRange-Funktionalität , die im Allgemeinen das beste Zeit-/Platzprofil für Bereichsabfragen über numerische Felder bietet.

Share the knowledge

You Might Also Like

Agentische KI und der Aufstieg von Protokollen: Wohin sich das Ökosystem als nächstes bewegt

m Jahr 2025 bewegen wir uns schnell auf ein neues Paradigma in...

Read More

MCP und Kontextfenster: Warum Protokolle eine größere Rolle spielen als größere LLMs

Im letzten Jahr hat sich das Rennen um die Erweiterung der LLM-Kontextfenster...

Read More

Wie MCP die KI-gestützte Suche und Entdeckung verbessern kann

In der Ära der generativen KI ist die Suche nicht länger ein...

Read More

Quick Links