Из noise words для 2005 удалить отдельные буквы - можно ли?

vengr
Дата: 27.01.2009 16:56:28
Я столкнулся с проблемой общения с полнотекстовым поиском в таком виде
SELECT * FROM table WHERE CONTAINS (textfield,'"R-Slon"')
-- дает тот же результат что и 
SELECT * FROM table WHERE CONTAINS (textfield,'"slon"')
Язык при этом выставлен в Neutral

это происходит скорее всего по причине наличия в файлке
noiseneu.txt
строки вида
a b c d e f g h i j k l m n o p q r s t u v w x y z


Что правильнее делать в этом случае ?
как бороться с WBreakerClass
который ссылкается на класс
{C731071F-AC80-11D1-8DF3-00C04FB6EF4F}
представленный msfte.dll

или удалить строку
насколько то или другое безопасно/ оправданно

размер таблицы около 2 Г - записей ок 500 тыс.
размер фултексиндекса около 300Мб сейчас

Microsoft SQL Server 2005 - 9.00.4035.00 () Nov 24 2008 16:17:31 Copyright (c) 1988-2005 Microsoft Corporation Developer Edition (64-bit) on Windows NT 5.2 (Build 3790: Service Pack 2)
vengr
Дата: 27.01.2009 17:22:11
я постарался объяснить что собираюсь подменить
класс для neutral на класс для русского
ruslr.dll
в нем вроде же нет такой проблемы?

переходить на русский для индекса не получится: текст там двуязычный
vengr
Дата: 28.01.2009 11:16:02
Чем прекрасен форум что быстро дает ответы на внятные вопросы

в данном случае важно целеполагание.

Ни тот ни другой подход ( с ломанием wordbreaks) и noise
желаемого результата не принесет.


Я предпринял другой подход:
проверил желаемый результат путем употребления
мучительно долгого like '%r-slon%'

убедился в его ничтожности и понял что нужно менять сам подход пользователей к построению поисковых запросов



Спасибо
pr0ger
Дата: 28.01.2009 11:50:54
Из текстовых файлов типа noiseneu.txt, можно удалять слова которые для вас не являются "шумом". После удаления нужно перестроить индекс.