J’adore SolR mais certaines choses sont plus compliquées à faire. Je voulais me faire un algorithme de ranking personnel basé sur la pertinence (de base) et sur une valeur numérique (karma ou date par exemple), ainsi que donner plus d’importance à certains champs. Ainsi, sur mon SolrR 8, cela se formule comme ça (je ne mets ici que les paramètres différents d’une utilisation) :
defType=edismax
&q=remix test
&sort=product($qq,karma)+desc
&qq={!edismax v="remix test" qf="title^20 description^2 author^10 "}
J’aurais aimé mettre dans qq, v=$q
au lieu de répéter la requête mais j’ai l’impression que ce n’est pas valable. En tout cas mon ranking est alors bien meilleur.
Enfin, pour ce qui est mettre un bonus aux documents les plus récents, toujours en edismax, j’ajoute: &bf=sqrt(sqrt(ms(dated)))
. Il est pertinent d’ajuster la fonction ms avec une origine temporelle du décompte: ms(mydatefield, 2000-01-01T00:00:00Z)