2009-04-22 2 views
0

Я создал полнотекстовый поиск в SQL Express Express Express. Это то, что я сделал:SQL full-text-search

-- STEP 1: Create catalog 
create fulltext catalog HtmlSearch 

-- STEP 2: Fill catalog 
create fulltext index on docs 
(WordHtml) 
key index IX_docs_1 
on HtmlSearch 
with change_tracking auto 

-- STEP 3: Search 
select * from docs 
where freetext(*, 'beleid') 

Документах таблица имеет одну строку, в которой поле WordHtml имеет (HTML) содержание. Когда я выполняю шаг 3, ничего не происходит. Я уверен, что термин «beleid» существует в html-документе. Результатом запроса является 0 записей. Так что я делаю неправильно? Должен ли я где-то настроить, чтобы это поле было Html? И так, как мне это сделать?

ответ

1

Аналогичный запрос работал с базой данных, которую я имел, поэтому я бы посмотрел на настройку. Вот некоторые вещи, которые вы можете попробовать:

Индекс, похоже, пока ничего хорошего не имеет, поэтому я бы бросил его и попытался воссоздать его. Я знаком с 2005 годом, но синтаксис, который вы использовали, не похож на то, что у меня есть. Вы можете попробовать (после соответствующих капель)

CREATE FULLTEXT Catalog HtmlSearch AS DEFAULT; 

GO 

CREATE FULLTEXT INDEX ON docs 
(WordHtml Language English) 
KEY INDEX IX_docs_1 
WITH CHANGE_TRACKING auto; 

GO 

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

Далее вы можете попробовать явно заполнить полный текстовый индекс. Это может быть необязательно, но я всегда делаю это после создания полного текстового индекса.

ALTER FULLTEXT INDEX ON docs 
START FULL POPULATION; 

GO 
Смежные вопросы