Ajout de boost pour marquer selon la charge utile du champ multivalué à Solr

Voici mon cas;

J'ai un champ sur mon schéma nommé elmo_field . Je veux que elmo_field ait des valeurs utiles. c'est à dire.

dorothy|0.46  sesame|0.37  big bird|0.19 bird|0.22

Lorsqu'un utilisateur recherche un mot-clé, par exemple dorothy , je souhaite ajouter 0,46 au score habituel. Si l'utilisateur recherche big bird , 0.19 devrait être ajouté et si l'utilisateur recherche bird , 0.22 devrait être ajouté (les charges utiles sont ajoutées - ou les charges utiles * normaliseront le coefficient) .

Je veux dire que je ferai une recherche sur mon index dans mes autres champs de schéma. Et je ferai une autre recherche (celle-ci est une recherche exacte) à elmo_field en même temps et si elle correspond à quelque chose, j'augmenterai le score avec les charges utiles.

Des idées?

0
Avez-vous lu les articles suivants liés à la charge utile dans la version misc solr? charges utiles solr 2.x solr 3.x charges utiles charges utiles de solr 4.x
ajouté l'auteur rchukh, source
Voir mon commentaire ici, je pense que c'est ce que vous essayez d'atteindre stackoverflow.com/a/49195384/2709131
ajouté l'auteur pwaterz, source

3 Réponses

J'ai implémenté un wrapper de similarité personnalisé. Pour les choses habituelles, j'ai utilisé DefaultSimilarity. Si un champ est un champ chargé, une autre similarité est implémentée par moi. Cette classe de similarité ignore simplement la valeur de charge utile. J'ai également implémenté un analyseur de requêtes qui est une version personnalisée d'edismax. Avec cette approche, je pourrais ajouter une valeur de charge utile dans le score du document.

0
ajouté
Utilisez-vous solr 4.x ?? Je suppose que vous l'êtes, j'ai écrit une version payloads d'edismax pour solr 3.x il y a plusieurs années, et j'espérais que la version 4.x d'edismax permettrait d'ajouter le score de charge utile au score global. Seriez-vous prêt à faire votre version de l'edismax for opensloads, je n'ai pas envie de tout écrire de nouveau, et je pourrais contribuer à y contribuer et je suis sûr que d'autres le feraient aussi.
ajouté l'auteur byoungb, source

There's an example with some explanation how to do this at http://dev.fernandobrito.com/2012/10/building-your-own-lucene-scorer/

0
ajouté

You could do a boost on a query as this question suggests: How to assign a weight to a term query in Lucene/Solr

Or you could try using payloads as described here: http://searchhub.org/2009/08/05/getting-started-with-payloads/

0
ajouté