Содержит () функция прерывается со строками чисел? - PullRequest
3 голосов
/ 04 ноября 2011

Для некоторой справочной информации я создаю приложение, которое выполняет поиск по нескольким индексированным таблицам, чтобы получить некоторые записи. С точки зрения Google, это не слишком сложно, но достаточно для той цели, которой оно служит, за исключением этой странной проблемы.

Я использую функцию Contains(), и она идет очень хорошо, за исключением случаев, когда поиск содержит строки чисел. Теперь я передаю только строку - нигде не передаются числовые типы данных - только символы. Мы осуществляем поиск по коллекции электронных писем, к каждому из которых добавляется пользовательский идентификатор при удалении из рабочего процесса. Поэтому во время тестирования мы решили поискать по числовым строкам.

В нашем тесте мы выделили число 0042600006, которое относится к одной и только одной теме письма. Однако при использовании нашего запроса мы получаем результаты для 0042600001, 0042600002 и т. Д. Запрос выглядит следующим образом (с некоторыми общими столбцами, стоящими внутри):

SELECT description, subject FROM tableA WHERE CONTAINS((subject), '0042600006')

Мы перепробовали все возможные комбинации: '0042600006*', '"0042600006"' и '"0042600006*"'.

Я думаю, что это просто ограничение функции, но я подумал, что это, вероятно, будет лучшим местом для ответов. Заранее спасибо.

Ответы [ 3 ]

1 голос
/ 25 октября 2012

Задал этот же вопрос недавно. Пожалуйста, смотрите проницательный ответ кто-то оставил меня здесь

По сути, этот пользователь говорит, чтобы отключить шумовые слова (Microsoft включила целые числа 0-9 в качестве шума в полнотекстовом поиске). Надеюсь, что вы можете использовать этот удивительный инструмент с целыми числами, как я сейчас!

1 голос
/ 13 января 2014

попробуйте добавить language 1033 в качестве дополнительного параметра. это сработало с моим решением.

SELECT description, subject FROM tableA WHERE CONTAINS((subject), '0042600006', language 1033)
0 голосов
/ 26 ноября 2011

попробуйте использовать ВЫБЕРИТЕ описание, тема ИЗ таблицы А ГДЕ СОДЕРЖИТ ((тема), '% 0042600006%')

...