Как использовать средство разбиения по словам из Microsoft SQL Server 2005 в моей автономной программе на C#

Я пишу программу, которая будет запрашивать индекс полнотекстового поиска в Microsoft SQL Server 2005. Индексируемые данные представляют собой большие фрагменты текста (несколько строк).

Мне нужно извлечь только те строки текста, которые содержат искомые слова для отображения с результатами.

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

Я подумал, что если я скопирую два dll (infosoft и langwrbk) из установки SQL Server на компьютер, на котором я запускаю свою программу, и запустил на них regsvr32, они будут установлены в реестре, и я смогу использовать их.

Не повезло - запуск regsvr32, похоже, ничего не добавляет в реестр!

У меня есть код, который работает с Word Breaker и Stemermer, который поставляется с Windows, и это работает, но я беспокоюсь о различиях (о которых я жаловался в других постах здесь).

1 ответ

Решение

Я использовал код в COM без регистрации, любезно предоставленной John Jeffery этого прихода.

Изначально у меня были проблемы, пока я не понял, что используемые мной библиотеки были 64-битными, а код, из которого я их использовал, был 32-битным. Как только я сделал код вызова 64-битным, все заработало. (Я полагаю, что я мог бы взять библиотеки DLL из 32-битной версии Sql Server, если бы хотел остаться 32-битной).

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

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