У меня есть таблица с полнотекстовым поиском, включенным в столбце Название. Я пытаюсь сделать взвешенный поиск с помощью stststable, но я получаю арифметическое переполнение для значения Rank. Запрос как следоватьSQL Server 2008 Containstable генерирует отрицательный ранг с помощью 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]
Когда я выполнить этот запрос, я получаю: Ошибка арифметического переполнения для типа INT, значение = -83886083125.000076.
Если я удалю один из двух ';' в функции ISABOUT запрос завершается успешно.
Обратите внимание, что при отсутствии результата запрос завершен успешно.
Кто-нибудь знает, как это решить?
Этот вопрос также находится на dba.stackexchange.com
Не могли бы вы добавить примеры данных, которые воссоздают проблему? Я попытался создать образец самостоятельно, но не смог его воссоздать. Кроме того, что произойдет, если вы сбросите CAST в свой выбор? – Richard
Если я бросаю бросок, я получаю ту же ошибку. Проблема в функции CONTAINSTABLE. Я не могу предоставить вам какие-либо данные, потому что данные принадлежат моему клиенту. Я замечаю что-то, когда я манипулирую предикатом. Если я удалю один из специальных символов (&,#,;), запрос выполняется успешно. – Nico