Как использовать средство разбиения по словам из 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, в котором используется как средство разбиения по словам, так и парадигматический модуль на случай, если кто-нибудь еще захочет сделать то же самое.