Frage

Ich arbeite mit Solr, ich kann mein Problem der Genauigkeit von Ergebnis nicht beheben (Q gegen BF unter Berücksichtigung von Akzenten)

Ich habe einen Solr -Index mit 2 Feldern indexiert (dies ist vereinfacht):

town, population
Félines, 100
Ferrand, 10000

Wenn ich nachfragt: q=Fé&qf=town town_ascii&bf=population^2&defType=dismaxIch möchte diese Bestellung auf meinen Ergebnissen: Félines > Ferrand.

Wenn ich nachfragt: q=Fe&qf=town town_ascii&bf=population^2&defType=dismax Ich möchte diese Bestellung auf meinen Ergebnissen: Ferrand > Félines

Das Problem ist, dass Ferrand jedes Mal schlägt, wenn Félines, weil seine Bevölkerung größer ist, so lösen kann, wie ich das lösen kann? Ich habe nicht gefunden, wie man die Punktzahl der Abfrage benutzt und sie in verwendet bf Bevölkerung ausgleichen

War es hilfreich?

Lösung

Du hast deine nicht gepostet schema.xml Aber ich nehme an, Sie verwenden die ASCIIFoldingFilterFactory für die town_ascii aufstellen. Wenn Sie das Wort Félines indexieren, sind dies folgende die indizierten Begriffe:

town: Félines
town_ascii: Felines

Deshalb sagen Sie, dass ein Match für die town Feld ist wichtiger als ein Match für town_ascii. Sie sollten die ändern qf Parameter zu so etwas wie qf=town^3 town_ascii dem mehr Gewicht zu geben town aufstellen. Dann können Sie das Gewicht je nach gewünschtem Gewicht anpassen town verglichen mit population.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top