Je rencontre un problème avec la syntaxe de requête Term [Boosting] [1] de Lucene, en particulier dans Ruby on Rails via la gemme sunspot_rails. Ceci vous permet de spécifier le poids d'un terme spécifique au cours d'une requête et n'est pas lié à la pondération d'un champ particulier.Renforcement du terme Lucene avec des barres solaires
La requête HTML générée par sunspot utilise le paramètre qf pour spécifier les zones à rechercher comme configurées et le paramètre q pour la requête elle-même. Lorsque le signe insertion est ajouté à un terme de recherche pour spécifier un boost (c'est-à-dire q = searchterm^5), il ne renvoie aucun résultat, même si les résultats seraient renvoyés sans le terme boost.
Si, en revanche, je crée une requête HTTP manuellement et spécifie manuellement le champ à rechercher (q = title_texts: searchterm^5), les résultats sont renvoyés et les scores semblent affectés par le boost. En bref, il semble que le renforcement des termes de requête ne fonctionne pas conjointement avec les champs spécifiés avec qf.
Mon application demande une recherche sur plusieurs champs, en utilisant les boosts respectifs associés à ces champs, conditionnellement à leur tour, en boostant les termes individuels d'une requête.
Un aperçu?
[1]: http://lucene.apache.org/java/2_9_1/queryparsersyntax.html#Boosting un terme
Merci, je vois maintenant que dismax est un sous-ensemble de syntaxe de requête Lucene. Malheureusement, j'ai besoin de stimuler les termes dans la requête, pas les champs des documents. Existe-t-il d'autres analyseurs de requêtes permettant d'effectuer des requêtes sur plusieurs champs? – aceofspades
Vous pouvez utiliser le bloc de texte intégral plus d'une fois, effectuer des requêtes sur différents champs dans chacun d'entre eux, améliorer différemment, etc. - cela correspondrait-il à votre cas d'utilisation? – outoftime
Je n'avais pas réalisé de taches solaires ne supporte que le démantèlement. Merci aux deux réponses, mais encore une fois, je dois être en mesure de spécifier à la fois un boost par champ, ainsi que des termes arbitraires de la requête entrante. Celui-ci semble exiger un nom de champ unique et l'analyseur lucene plus de démixer. – aceofspades