Flexibles Ranking in Lucene 4
Während des Sommers diente ich als Google Summer of Code Mentor für David Nemeskey, Doktorand an der Eötvös Loránd Universität. David schlug vor, die Scoring-Architektur von Lucene zu verbessern und einige moderne Ranking-Modelle mit dem neuen Framework zu implementieren.
Diese Verbesserungen sind nun in den Lucene-Stamm integriert: Sie können diese Modelle zusammen mit allen Lucene-Funktionen (Boosts, Slops, Erklärungen usw.) und Abfragen (Term, Phrase, Spans usw.) verwenden. Es wurde ein JIRA-Problem erstellt, um die Verwendung dieser Modelle aus der schema.xml von Solr zu erleichtern.
Das Relevanz-Ranking ist das Herzstück der Suchmaschine, und ich hoffe, dass die zusätzlichen Modelle und die Flexibilität die Benutzerfreundlichkeit von Lucene verbessern werden: egal, ob Sie mit der Abstimmung der TF/IDF-Gewichte frustriert waren und ein alternatives Modell für Ihren Fall besser geeignet ist, ob Sie Schwierigkeiten hatten, die für Ihre Anwendung erforderliche benutzerdefinierte Logik zu integrieren, oder ob Sie einfach nur experimentieren möchten.
Ich werde auf der Lucene Eurocon im Oktober und auf dem SFBay Apache Lucene/Solr Meetup Ende des Monats einen Vortrag darüber halten, wie Sie einige der kommenden Lucene 4 Suchfunktionen praktisch anwenden können.
Einige Stichpunkte zu den neuen Scoring-Funktionen:
- Neue Ranking-Algorithmen, zusätzlich zum Vektorraummodell von Lucene:
- Dem Indexformat wurden Schlüsselstatistiken hinzugefügt, um zusätzliche Scoring-Modelle zu unterstützen.
- Statistiken auf Begriffs- und Feldebene für Erfassungshäufigkeiten und die Ableitung von Durchschnittswerten.
- Zusätzliche Statistiken auf Dokumentenebene zur Berechnung von Normalisierungsfaktoren.
- Entkopplung des Abgleichs vom Ranking in den Kernsuchklassen von Lucene:
- Passen Sie das Scoring an, ohne in den „Eingeweiden“ zu wühlen.
- Erklärungen anpassen: wichtig für die Behebung von Relevanzproblemen.
- Leistungsstarke Low-Level-API für Ähnlichkeit , die erweiterte Anwendungsfälle unterstützt:
- Berücksichtigen Sie die Werte pro Dokument aus den Column Stride Fields in der Bewertung.
- Verwenden Sie unterschiedliche Bewertungsparameter oder Algorithmen für verschiedene Felder.
- Fügen Sie mehrere Bewertungsalgorithmen zu einer kombinierten Bewertung zusammen.
- Praktische High-Level SimilarityBase für alles andere:
- Schreiben Sie Ihre eigene Scoring-Funktion in einer Java-Methode.
- Einfacher Zugriff auf verfügbare Indexstatistiken.
Weitere Informationen über dieses GSOC-Projekt finden Sie auf seiner Wiki-Seite