Domanda

Lavoro con Solr, non riesco a risolvere il mio problema dell'accuratezza del risultato (Q vs BF tenendo conto degli accenti)

Ho un indice SOLR con 2 campi indicizzati (questo è semplificato):

town, population
Félines, 100
Ferrand, 10000

Quando ho chiesto: q=Fé&qf=town town_ascii&bf=population^2&defType=dismaxVorrei questo ordine sui miei risultati: Félines > Ferrand.

Quando ho chiesto: q=Fe&qf=town town_ascii&bf=population^2&defType=dismax Vorrei questo ordine sui miei risultati: Ferrand > Félines

Il problema è che Ferrand batte ogni volta che féline perché la sua popolazione è più grande, come posso risolverlo? Non ho trovato come usare il punteggio della query e usarlo bf per bilanciare la popolazione

È stato utile?

Soluzione

Non hai postato il tuo schema.xml Ma suppongo che tu stia usando il ASCIIFoldingFilterFactory per il town_ascii campo. Significa che se stai indicizzando la parola féline, i seguenti sono i termini indicizzati:

town: Félines
town_ascii: Felines

Pertanto, stai dicendo che una corrispondenza per il town Il campo è più importante di una partita per town_ascii. Dovresti cambiare il qf parametro a qualcosa di simile qf=town^3 town_ascii per dare più peso al town campo. Quindi puoi regolare il peso a seconda di ciò che è il peso desiderato town rispetto a population.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top