Как изменить символы переноса слов в полнотекстовой индексации SQL Server - PullRequest
2 голосов
/ 09 октября 2009

По умолчанию, когда кто-то сообщает SQL Server (в настоящее время использует 2008) полнотекстовый индекс для столбца, он обрабатывает такие символы, как «@» и «.» как прерыватели работы, аналогично "".

Я бы хотел ограничить символы прерывания работы только "", чтобы слово "joe.bloggs@somewhere.com" обрабатывалось как одно слово.

Похоже, что можно выбрать «Язык для средства разбиения по словам» вместо индексированного столбца - возможно, мне нужно настроить пользовательский язык?

Кто-нибудь знает, как я могу это сделать?

Ответы [ 2 ]

3 голосов
/ 15 февраля 2010

Для того, чтобы ваш инструмент разбиения по словам летал с SQL Server, вы должны отключить проверку подписи и добавить свой COM CLSID в реестр. Для получения дополнительной информации проверьте этот пост: http://blogs.msdn.com/shajan/default.aspx Это мне очень помогло! Однако мне так и не удалось создать свой собственный язык, поэтому я просто угнал уже существующий.

1 голос
/ 03 ноября 2009

Согласно статье TechNet о полнотекстовом поиске SQL 2008:

известные опубликованные интерфейсы обеспечить основу для полнотекстового Расширяемость двигателя. Для большего информация, см. Microsoft Темы для сети разработчиков (MSDN) IFilter, IWordBreaker и IStemmer.

Таким образом, по крайней мере, в соответствии с этой статьей, вы можете реализовать собственную реализацию IWordBreaker (см. http://www.siao2.com/2005/03/14/395199.aspx для получения дополнительной информации) и заставить SQL использовать ее.

То, что я до сих пор не нашел, - это как подключить ваш собственный инструмент разбиения по словам к самому SQL - как сказать SQL, чтобы использовать ваш инструмент разбиения по словам. Извините за неполный ответ ... надеюсь, я нашел вас хотя бы частью пути к решению.

...