У меня есть полнотекстовый индексный столбец nvarchar (max) при установке SQL Server 2012. Если в одной строке столбца есть данные о бла-бла-бла-бла-бла-бла-бла-бла-бла. Когда я бегу следующие вопросы, те, которые возвращают строку показаны:SQL Server Полнотекстовый поиск для числовой строки с запятыми
SELECT ftext FROM dbo.Test WHERE Contains([ftext], '"1,234,567*"') --true
SELECT ftext FROM dbo.Test WHERE Contains([ftext], '"1234567*"') --true
SELECT ftext FROM dbo.Test WHERE Contains([ftext], '"1,234*"') --true
SELECT ftext FROM dbo.Test WHERE Contains([ftext], '"1234*"') --true
SELECT ftext FROM dbo.Test WHERE Contains([ftext], '"1,234,5*"') --false
SELECT ftext FROM dbo.Test WHERE Contains([ftext], '"12345*"') --true
SELECT ftext FROM dbo.Test WHERE Contains([ftext], '"1,234,56*"') --false
SELECT ftext FROM dbo.Test WHERE Contains([ftext], '"123456*"') --true
Сначала я только предположил, что запятая лечилась как шум, но это, кажется, не так, как «1234567 *» и «1,234 *» возвращают результат, а «1,234,5 *» и «1,234,56 *» - нет. Почему это?
Вы используете список стоп-слов? (По умолчанию используется список стоп-слов системы.) Если да, попробуйте отключить его, переиндексировать и посмотреть, не исчезла ли эта проблема. Я подозреваю, что список стоп-слов вызывает какое-то странное поведение. – Keith
Я запускал «ALTER FULLTEXT INDEX ON dbo.Test SET STOPLIST = OFF», а затем повторно заполнял полный текстовый индекс и до сих пор получаю тот же результат. – cl0rkster