Простой способ проверить, установлен ли полнотекстовый «компонент» MSSQL Server 2008, — выполнить следующий T-SQL.
SELECT SERVERPROPERTY('IsFullTextInstalled')
Если это возвращает значение «1», компонент установлен.
В противном случае вам придется установить полнотекстовый поиск SQL Server на существующем экземпляре SQL Server.
- Загрузите последний установщик для «SQL Server Express с расширенными службами» на сервере (например, сохраните его в «c:\installers») MSSQL Server 2008 Express с расширенными службами.
- Перейдите туда, где вы его сохранили, и разархивируйте самораспаковывающийся EXE-файл (щелкните правой кнопкой мыши и выберите «Извлечь»).
- Установите его, дважды щелкнув setup.
- Выберите «обновить существующий экземпляр до новой версии или редакции» и выполните все шаги.
- Я почти уверен, что меня никогда не спрашивали, какие функции мне нужны (т.е. не было возможности выбрать полнотекстовый поиск). При повторном запуске установщика также не было возможности «добавить функции в существующий экземпляр», поэтому в конце концов я понял, что необходимы следующие дополнительные шаги...
- Перейдите в Панель управления > Установка и удаление программ.
- Найдите SQL Server и откройте его. (Он задал мне вопрос в духе «удаление этого, пока другие люди используют его, причинит им некоторую боль» — это было немного страшно, но я сказал «да, ладно», а затем задал обычный вопрос: хочу ли я удалить или изменять)
- Вопрос: удалить или изменить (Ответ: изменить).
- Нажмите «Добавить функции»
- Найдите установочный носитель. В этом случае мы можем найти место, где мы разархивировали установщик для «SQL Server Express с расширенными службами» (обратите внимание, что его необходимо извлечь, иначе он ему не понравится)
- Пройдите кучу дерьма вокруг шагов. Затем вам будет предложено «установить новый экземпляр» или «добавить функции в существующий экземпляр» (выберите «Добавить функции»).
- На шаге «Возможности» вы можете поставить галочку «Полнотекстовый поиск» (ура!!)
Завершите работу мастера, и теперь все должно работать, запустите этот sql для подтверждения:
ВЫБЕРИТЕ SERVERPROPERTY('IsFullTextInstalled')
Теперь вы можете Включить полнотекстовый поиск с помощью T-SQL.
-- We'll use Northwind sample database to enable
-- Full Text Search feature using T-SQL code only
USE Northwind
GO
-- We need to enable full text search for Northwind database
-- We will do that with sp_fulltext_database procedure
EXEC sp_fulltext_database 'enable'
-- Create catalog
EXEC sp_fulltext_catalog 'NorthwindCatalog','create'
-- Add some indexes to database
EXEC sp_fulltext_table 'Customers', 'create', 'NorthwindCatalog', 'pk_customers'
EXEC sp_fulltext_table 'Orders', 'create', 'NorthwindCatalog', 'pk_orders'
-- add columns for searching to full text search index
EXEC sp_fulltext_column 'Customers', 'CompanyName', 'add'
EXEC sp_fulltext_column 'Customers', 'ContactName', 'add'
EXEC sp_fulltext_column 'Customers', 'Address', 'add'
EXEC sp_fulltext_column 'Customers', 'City', 'add'
EXEC sp_fulltext_column 'Orders', 'ShipName', 'add'
EXEC sp_fulltext_column 'Orders', 'ShipAddress', 'add'
EXEC sp_fulltext_column 'Orders', 'ShipCity', 'add'
-- Activate full text search indexes
EXEC sp_fulltext_table 'Customers','activate'
EXEC sp_fulltext_table 'Orders','activate'
-- start full population of catalog
EXEC sp_fulltext_catalog 'NorthwindCatalog', 'start_full'
Теперь вы можете выполнять поиск по проиндексированным столбцам, используя ключевые слова CONTAINS, FREETEXT, CONTAINSTABLE или FREETEXTTABLE. Например, допустим, я хочу проверить все контакты, где имя Мария или Анна:
USE Northwind
GO
SELECT CustomerId, ContactName, CompanyName, Address, City
FROM Customers c INNER JOIN
CONTAINSTABLE(Customers, (ContactName), '"Maria" OR "Ana"') AS KEY_TBL
ON c.CustomerId = KEY_TBL.[KEY]
ORDER BY KEY_TBL.RANK DESC
Этот SQL-запрос вернет результаты, как на изображении ниже: ![введите здесь описание изображения](https://i. stack.imgur.com/G2aJx.gif)
person
Karthikeyan P
schedule
06.10.2015