Игнорировать "." как средство разбиения по словам в 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, как и ожидалось.

Другие вопросы по тегам