2016-05-06 3 views
0

У нас есть полный текстовый индекс в поле xml в нашей базе данных.Полный текст Поиск не возвращает правильные результаты

Если я запускаю этот запрос:

select * 
    from UserProfile 
    where CONTAINS(UserData,'028894507') 

я получить правильные результаты. Но если я запускаю этот запрос:

select * 
    from UserProfile 
    where CONTAINS(UserData,'02889') 

я получаю совершенно другой набор результатов, и это даже не включает в себя результаты первого запроса.

Я сделал быстрый поиск Google и нашел, что есть стоп-слова, которые могут отбросить результаты, но даже не список остановки в моей базе данных ...

ответ

0

Я не эксперт TSQL, однако - Я считаю, что CONTAINS выполняет поиск целых совпадений слов. Вы также можете искать совпадения префикса, используя символ *.

select * from UserProfile where CONTAINS(UserData,'"02889*"')

Это должно соответствовать строки, содержащие 028894507, а также любую строку с номером, начиная с 02889. Обратите внимание, что двойные кавычки важны при выполнении префикса.

https://msdn.microsoft.com/en-us/library/ms187787.aspx