In meinem Fall haben Dokumente zwei Felder, z. B. "Titel" und "Ansichten". "Ansichten" ist die Anzahl der Besuche in diesem Dokument. wie: "titel": "iphone", "ansichten": "10". Ich muss eine Strategie entwickeln, die den Ansichten einige Gewichtungen zuweist, so wie der Relevanz-Score nach Score (Titel) * 0,8 + Score (Views) * 0,2 berechnet wird. Kann Lucene das? Und ich möchte wissen, ob es einige Algorithmen zu dieser Frage gibt.
So können Sie das tun:
%Vor% Der Score ist proportional zu 0.8*score(titleQuery) + 0.2*score(viewsQuery)
(zu einer multiplikativen Konstante).
Um Ihr views
-Feld zu nutzen, müssen Sie wahrscheinlich ein ValueSourceQuery .
Sie können auf 3 Arten steigern. Je nach Ihren Anforderungen möchten Sie vielleicht eine Kombination verwenden
Erhöhung der Dokumentebene - während der Indizierung - durch Aufruf document.setBoost (), bevor ein Dokument zum Index hinzugefügt wird.
Die Feldstufe des Dokuments erhöht sich - während der Indizierung - durch Aufruf field.setBoost () vor dem Hinzufügen eines Feldes zum Dokument (und vor Hinzufügen des Dokuments zum Index).
Erhöhung der Abfrageebene - während Suche, indem ein Boost auf eine Abfrageklausel gesetzt wird Query.setBoost ().
Quelle: Ссылка
Tags und Links lucene search-engine