Используются ли в MS SQL Server 2000 запросы полнотекстового индекса с использованием freetextable? - PullRequest
0 голосов
/ 29 июля 2009

Я использую полнотекстовую индексацию MSSQL для нескольких таблиц в моей CMS и, к сожалению, застрял на SQL Server 2000. Я запрашиваю индекс с помощью соединений freetexttable и получаю довольно хорошие результаты, но у нас есть несколько уникальных терминов это, вероятно, поисковые запросы, которые, как представляется, не являются Например, запрос, использующий термин «smartbar», возвращает пару строк, но запрос, использующий «smartbar», возвращает другой, только частично перекрывающийся набор результатов.

Если я правильно понимаю концепцию основ, я бы предположил, что первый запрос будет содержать все строки во втором запросе, но это не так.

Глядя на MSDN Books Online, на этой странице упоминает, что происходит в комментариях к параметру freetext_string, а на этой странице - нет. Исходя из этого, я бы предположил , что SQL Server 2000 не основывает слова в свободном текстовом запросе; это правильное предположение? Есть ли способ поощрить или включить SQL Server 2000 для остановки? В качестве запасного варианта я, вероятно, буду использовать файлы тезауруса для важных запросов для наших уникальных терминов, но скорее позволю SQL Server выполнять большую часть работы.

В качестве продолжения, если у кого-то есть ссылки на хорошие ресурсы, касающиеся полнотекстовых запросов SQL Server 2000, я был бы очень признателен. Информация MSDN полезна, но мне бы хотелось получить более подробную информацию, и я не смог бы найти много.

1 Ответ

1 голос
/ 05 августа 2009

Я думаю, что вы ищете немного по-другому. Вы хотите найти все формы слова. Это имеет какое-то отношение к основам, но в полнотекстовом поиске MS SQL Server результат немного отличается. Вам необходимо явно указать серверу поиск всех форм слова, а не только самого слова.

Вот как это сделать:

SELECT <select list> 
FROM [YourTable] 
WHERE CONTAINS(*, 'FORMSOF (INFLECTIONAL, smartbar)')

В MSDN есть статья на эту тему. Согласно другим ресурсам, эта функция была доступна и в SQL 2k (но у меня нет экземпляра для проверки).

...