У меня SQL Server 2005 Express Edition с расширенными службами. Я включил FullText и создал каталог следующим образом:
create FullText catalog MyDatabase_FT in path 'mypath' as default
Затем я создал индекс FullText следующим образом:
create FullText index on Cell (CellName) key index PK_Cell
with CHANGE_TRACKING AUTO
Я выполнил следующие запросы:
1) select count(*) from Cell where contains (CellName, 'CU*')
2) select count(*) from Cell where CellName like 'CU%'
И получил следующие результаты:
1) 0
2) 24
Я понимаю, что заполнение индексов FullText может занять некоторое время. Однако, несмотря на большое количество времени (12 часов), я все еще не получил никаких результатов. Затем я провел дальнейшее исследование с использованием функции ObjectPropertyEx () и выполнил следующее:
declare @id int
select @id = id FROM sys.sysobjects where [Name] = 'Cell'
select 'TableFullTextBackgroundUpdateIndexOn' as 'Property', objectpropertyex(@id, 'TableFullTextBackgroundUpdateIndexOn') as 'Value'
union select 'TableFullTextChangeTrackingOn', objectpropertyex(@id, 'TableFullTextChangeTrackingOn')
union select 'TableFulltextDocsProcessed', objectpropertyex(@id, 'TableFulltextDocsProcessed')
union select 'TableFulltextFailCount', objectpropertyex(@id, 'TableFulltextFailCount')
union select 'TableFulltextItemCount', objectpropertyex(@id, 'TableFulltextItemCount')
union select 'TableFulltextKeyColumn', objectpropertyex(@id, 'TableFulltextKeyColumn')
union select 'TableFulltextPendingChanges', objectpropertyex(@id, 'TableFulltextPendingChanges')
union select 'TableHasActiveFulltextIndex', objectpropertyex(@id, 'TableHasActiveFulltextIndex')
Это дало следующие результаты:
TableFullTextBackgroundUpdateIndexOn 1
TableFullTextChangeTrackingOn 1
TableFulltextDocsProcessed 11024
TableFulltextFailCount 0
TableFulltextItemCount 4038
TableFulltextKeyColumn 1
TableFulltextPendingChanges 0
TableHasActiveFulltextIndex 1
Затем я попытался сделать новую полную популяцию индекса следующим образом:
alter fulltext index on Cell start full population
И я получаю следующее предупреждение:
Warning: Request to start a full-text index population on table or indexed view 'Cell' is ignored because a population is currently active for this table or indexed view.
Я попытался обновить население следующим образом:
alter fulltext index on Cell start update population
Это вернуло: «Команда (и) выполнена успешно.», Однако я все еще не получаю результатов по полнотекстовому поиску.
Что мне не хватает? Что мне нужно сделать, чтобы заставить работать полнотекстовый поиск?
Спасибо, Элан