3 votes

Trier les résultats de solr en pondérant certains éléments

J'ai une requête Solr qui renvoie simplement les éléments les plus récents de l'index. Cependant, j'essaie d'avoir la possibilité, si des catégories sont passées, de pondérer le champ catégorie de telle sorte que s'il y a des correspondances pour le champ catégorie, elles soient plus pondérées, mais que les éléments sans catégorie soient toujours affichés.

de sorte que la structure du document ressemble à ceci :

{id:1, title:"sometitle", category:['cat1','cat2']},{id:1, title:"sometitle", category:[]}

ma question générale est à peu près la suivante

title:*

Mais si les catégories sont fournies, je ferais la même requête title:*, mais j'aimerais que les résultats soient triés de manière à ce que les résultats dont les champs de catégorie correspondent aux catégories fournies soient plus pondérés.

J'ai essayé la requête boost (bq) mais cela n'a pas fonctionné (ce qui est logique car ma requête doit retourner tous les résultats) et je trie les résultats primaires par score et j'effectue un tri secondaire sur un champ "créé".

3voto

Xodarap Points 6130

Si je comprends bien votre question, vous souhaitez que certains documents soient mieux notés quelle que soit votre demande n'est-ce pas ? Les documents qui contiennent des catégories devraient être meilleurs que ceux qui n'en contiennent pas ?

Si c'est ce que vous voulez, voyez : Comment puis-je augmenter le score de certains documents ? .

Il se peut aussi que vous ne demandiez à bénéficier d'un coup de pouce que si vous en faites la demande. Votre requête doit être

+(title:"title to search for") category:"categories to boost"

Il ne trouvera que les éléments qui correspondent au titre, mais il augmentera le score s'il s'agit d'une catégorie que vous avez incluse dans la requête.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X