Поиск по полнотекстовому индексу SQL2008 без средств разбиения по словам
Я пытаюсь найти FTI, используя CONTAINS
для имен пользователей в стиле Twitter, например, @username, но средства разбиения по словам будут игнорировать символ @. Есть ли способ отключить средства разбиения по словам? Из исследований есть способ создать собственную DLL-библиотеку средства разбиения по словам, установить ее и назначить ее, но все это кажется немного интенсивным и, честно говоря, над моей головой. Я отключил стоп-слова, чтобы тире не игнорировались, но мне нужен этот символ @. Есть идеи?
1 ответ
Вам не понравится этот ответ. Но полнотекстовые индексы учитывают только символы _ и ` при индексации. Все остальные символы игнорируются, и слова разделяются там, где встречаются эти символы. Это происходит главным образом потому, что полнотекстовые индексы предназначены для индексации больших документов, и там рассматриваются только правильные слова, чтобы сделать его более точным поиском.
Мы столкнулись с похожей проблемой. Чтобы решить эту проблему, у нас на самом деле была таблица перевода, где такие символы, как @,-, / были заменены специальными последовательностями, такими как"at","dash","slash" и т. Д. При поиске в полном тексте, Вы должны снова заменить символы в строке поиска этими специальными последовательностями и выполнить поиск. Это должно заботиться о специальных символов.