2009-07-29 1 views
0

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

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

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

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

ответ

1

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

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

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

Там же в MSDN в article по этому вопросу. По другим ресурсам эта функция была доступна и в SQL 2k (но у меня нет экземпляра для проверки).

+0

хороший, спасибо. Я проверю его и посмотрю, поможет ли он найти дополнительные формы. – cori

+0

В результате я не смог проверить это на наших данных - пользователи очистили данные, прежде чем я смог попробовать, но на основе этого [http://msdn.microsoft.com/en-us/library/ms142509 (SQL.90) .aspx] Я полагаю, что это не исправлено, потому что «smartbar» не является признанным английским словом, а возникновение (и, я думаю, с помощью форм расширенных слов) работает против известного словаря. Я думаю, что мы будем придерживаться использования тезауруса, что на самом деле не так уж и необоснованно, поскольку мы рассматриваем проприетарные термины. – cori

+0

Если вам нужен такой уровень гибкости, вы должны, вероятно, взглянуть на Apache Solr (поисковый сервер на основе полнотекстового индекса Apache Lucene). – AlexS