2011-10-09 6 views
5

Ho già determinato il boost in anticipo. Ho un campo nell'indice solr chiamato boost1. Questo campo di incremento avrà un valore compreso tra 1 e 10 simile al ranking PR di Google. Questa è la spinta che dovrebbe essere applicata a ogni query eseguita in solr. qui ci sono i campi nel mio indiceCome aumentare i campi in solr

  • Id
  • Titolo
  • Testo
  • Boost1 campo

L'aumento dovrebbe essere si applicano a ogni query. Sto cercando di implementare funzionalità simili a quelle del ranking PR di Google. C'è un modo per farlo usando solr?

+0

Questo è ancora (dal 2012) informativo e utile: https://nolanlawson.com/2012/06/02/comparing-boost-methods-in-solr/ – Risadinha

risposta

8

è possibile aggiungere l'aumento durante la query, ad es.

q={!boost b=boost1} 

How_can_I_boost_the_score_of_newer_documents

Tuttavia, questo può essere necessario aggiungere in modo esplicito da voi.

Se si utilizza dismax o edismax con il gestore richieste, è possibile utilizzare il parametro bf (Boost Functions) per aumentare i documenti. http://wiki.apache.org/solr/DisMaxQParserPlugin#bf_.28Boost_Functions.29

bf=boost1^0.5 

Questo può essere aggiunto ai valori di default con la definizione gestore della richiesta, in modo che siano applicate a tutte le query di ricerca.

è possibile utilizzare le query funzione per variare la quantità di spinta FunctionQuery

+0

Ciao, Come fare una query di funzione più complessa a ottenere una spinta utilizzando la moltiplicazione .. pls controllare su http://stackoverflow.com/questions/19874983/use-function-query-for-boosting-score-in-solr –

+0

Si potrebbe preferire il 'boost' (aumento moltiplicativo) al parametro 'bf' (additivo boost) nelle query' edismax'. Un articolo che fa luce su tutti i diversi parametri: https://nolanlawson.com/2012/06/02/comparing-boost-methods-in-solr/ – Risadinha