Игнорировать "." как средство разбиения по словам в SQL Server 2008
Есть ли способ игнорировать. как средство разбиения по словам для полного текста в SQL Server 2008. Основная цель этого заключается в том, чтобы я хотел иметь возможность поиска IP-адресов в полнотекстовом поиске.
1 ответ
Смена средств разбиения по словам - задача не из легких. Также это становится более сложным, потому что игнорирование точек в целом, вероятно, вызовет другие проблемы при разборе.
В качестве альтернативы вы можете заменить точки в IP-адресах буквой перед отправкой строки на сервер.
Если, например, ваша строка
"Есть ли какая-либо связь между localhost и 127.0.0.1?"
Вы можете изменить его (регулярное выражение является лучшим вариантом), чтобы
"Есть ли какая-нибудь связь между localhost и 127d0d0d1?"
и передать его на сервер.
Позже используется с парсером
select *
from sys.dm_fts_parser(
'"Is there any connection between localhost and 127d0d0d1?"'
,1033
,0
,0);
возвращает 8 записей; последний - 127d0d0d1, как и ожидалось.