J'ai une table avec la recherche de texte intégral activée dans la colonne Titre. J'essaie de faire une recherche pondérée avec un containstable mais j'obtiens un débordement arithmétique pour la valeur Rank. La requête est la suivanteSQL Server 2008 Containstable génère un classement négatif avec weighted_term
SELECT ID, CAST(Res_Tbl.RANK AS Decimal) AS Relevancy , Title
FROM table1 AS INNER JOIN
CONTAINSTABLE(table1,Title,'ISABOUT("pétoncle" weight (.8), "pétoncle" weight (.8), "PÉTONCLE" weight (.8))',LANGUAGE 1036) AS Res_Tbl
ON ID = Res_Tbl.[KEY]
Lorsque j'exécute cette requête, je reçois: erreur de dépassement arithmétique pour le type int valeur = -83886083125,000076.
Si je supprime l'un des deux ';' dans la fonction ISABOUT, la requête aboutit.
Notez que vous devez obtenir des résultats s'il n'y a aucun résultat, la requête aboutit.
Est-ce que quelqu'un sait comment résoudre ce problème?
Cette question est aussi dba.stackexchange.com
Pourriez-vous ajouter des exemples de données qui recrée le problème? J'ai essayé de créer un échantillon par moi-même, mais j'ai été incapable de le recréer. Aussi, que se passe-t-il si vous déposez le CAST dans votre sélection? – Richard
Si je laisse tomber la distribution je reçois la même erreur. Le problème est à l'intérieur de la fonction CONTAINSTABLE. Je ne peux pas vous fournir de données car les données appartiennent à mon client. Je remarque quelque chose quand je manipule le prédicat. Si je supprime l'un des caractères spéciaux (&,#,;) la requête s'exécute avec succès. – Nico