У меня есть таблица с различными столбцами, и 2 из них предназначены для полнотекстового поиска:
- file_data как varbinary (max)
- file_extension as nvarchar (8))
У меня также есть уникальный индекс в таблице. Затем я создал каталог следующим образом:
CREATE FULLTEXT CATALOG mycatalog
GO
CREATE FULLTEXT INDEX ON mytable
(
file_data
TYPE COLUMN file_extension
Language 1033
)
KEY INDEX PK_mytable ON mycatalog
WITH CHANGE_TRACKING AUTO
GO
Затем я добавил PDF-файлы следующим образом:
DECLARE @pdf VARBINARY(MAX)
SELECT @pdf = BulkColumn
FROM OPENROWSET(BULK N'C:\path\filename.pdf', SINGLE_BLOB) AS file_data;
INSERT INTO mytable (file_data, file_extension)
VALUES (@pdf, '.pdf')
Когда я выполняю полнотекстовый поиск с использованием FREETEXT
, я не получаю результаты. Итак, я запускаю это представление:
SELECT * FROM sys.dm_fts_index_keywords(db_id('mydb'), object_id('dbo.mytable'))
И оно пустое. Я также запустил:
SELECT
FULLTEXTCATALOGPROPERTY(cat.name,'ItemCount') AS [ItemCount],
FULLTEXTCATALOGPROPERTY(cat.name,'MergeStatus') AS [MergeStatus],
FULLTEXTCATALOGPROPERTY(cat.name,'PopulateCompletionAge') AS [PopulateCompletionAge],
FULLTEXTCATALOGPROPERTY(cat.name,'PopulateStatus') AS [PopulateStatus],
FULLTEXTCATALOGPROPERTY(cat.name,'ImportStatus') AS [ImportStatus]
FROM sys.fulltext_catalogs AS cat
И все значения равны 0, кроме PopulateCompletionAge
, что является большим числом. Поэтому я попытался выполнить ручное заполнение с помощью:
ALTER FULLTEXT INDEX ON mytable START FULL POPULATION;
И я получил это сообщение:
Предупреждение. Запрос на запуск заполнения полнотекстового индекса для таблицы или индексированного представления «mytable» игнорируется, поскольку в настоящий момент для этой таблицы или индексированного представления активно заполнение.
Я пропускаю шаг по настройке / заполнению каталога?