Используются ли в MS SQL Server 2000 запросы полнотекстового индекса с использованием freetextable?
Я использую полнотекстовую индексацию 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 ответ
Я думаю, что вы ищете немного по-другому. Вы хотите найти все формы слова. Это имеет какое-то отношение к основам, но в полнотекстовом поиске MS SQL Server результат немного отличается. Вам необходимо явно указать серверу искать все формы слова, а не только само слово.
Вот как это сделать:
SELECT <select list>
FROM [YourTable]
WHERE CONTAINS(*, 'FORMSOF (INFLECTIONAL, smartbar)')
В MSDN есть статья на эту тему. Согласно другим ресурсам, эта функция была доступна и в SQL 2k (но у меня нет экземпляра для проверки).