Tsql теория > Создание полнотекстового индекса
10.12.2018 21:33:22
Наиболее часто встречающиеся слова в статье:
Статья:
https://docs.microsoft.com/ru-ru/sql/relational-databases/search/full-text-search?view=sql-server-2017
https://docs.microsoft.com/ru-ru/sql/t-sql/statements/create-fulltext-index-transact-sql?view=sql-server-2017
--В следующем примере создается уникальный индекс по столбцу JobCandidateID таблицы HumanResources.JobCandidate
--образца базы данных AdventureWorks2012. Затем пример создает полнотекстовый каталог по умолчанию, ft.
--Наконец, пример создает полнотекстовый индекс по столбцу Resume с использованием каталога ft и системного списка стоп-слов.
CREATE UNIQUE INDEX ui_ukJobCand ON HumanResources.JobCandidate(JobCandidateID);
CREATE FULLTEXT CATALOG ft AS DEFAULT;
CREATE FULLTEXT INDEX ON HumanResources.JobCandidate(Resume)
KEY INDEX ui_ukJobCand
WITH STOPLIST = SYSTEM;
GO
--------------------
USE [MDM_Light]
GO
--CREATE UNIQUE INDEX ui_ukJobCand ON HumanResources.JobCandidate(JobCandidateID);
CREATE FULLTEXT CATALOG ftProspectDwh4vdDmc_catalog
GO
CREATE FULLTEXT INDEX ON [dbo].[ftProspectDwh4vdDmc] KEY INDEX [PK__ftProspe__DC501A1D8D71A07C] ON ([ftProspectDwh4vdDmc_catalog]) WITH (CHANGE_TRACKING AUTO)
GO
USE [MDM_Light]
GO
ALTER FULLTEXT INDEX ON [dbo].[ftProspectDwh4vdDmc] ADD ([FULL_NAME])
GO
ALTER FULLTEXT INDEX ON [dbo].[ftProspectDwh4vdDmc] ENABLE
GO
--ALTER FULLTEXT INDEX ON [dbo].[ftProspectDwh4vdDmc] START FULL POPULATION
--GO
---------------------
Б. Создание полнотекстового индекса для нескольких столбцов таблицы
В следующем примере создается полнотекстовый каталог, production_catalog, в образце базы данных AdventureWorks. Следующий пример создает полнотекстовый индекс, который использует этот новый каталог. Полнотекстовый индекс построен для столбцов ReviewerName, EmailAddress и Comments таблицы Production.ProductReview. Для каждого столбца в примере указывается код английского языка 1033, который является языком данных в столбцах. В этом полнотекстовом индексе используется существующий уникальный индекс ключа PK_ProductReview_ProductReviewID. Согласно рекомендациям, этот ключ индекса находится в целочисленном столбце ProductReviewID.
Копировать
CREATE FULLTEXT CATALOG production_catalog;
GO
CREATE FULLTEXT INDEX ON Production.ProductReview
(
ReviewerName
Language 1033,
EmailAddress
Language 1033,
Comments
Language 1033
)
KEY INDEX PK_ProductReview_ProductReviewID
ON production_catalog;
GO
---------------------
Создание полнотекстового индекса со списком свойств поиска без его заполнения
В следующем примере создается полнотекстовый индекс по столбцам Title, DocumentSummary и Document таблицы Production.Document. В примере для каждого столбца указан код для английского языка, 1033, который является языком данных в столбцах. Этот полнотекстовый индекс использует полнотекстовый каталог по умолчанию и существующий индекс уникального ключа — PK_Document_DocumentID. Согласно рекомендациям, этот ключ индекса находится в целочисленном столбце DocumentID.
В примере указывается системный список стоп-слов. Кроме того, задается список свойств поиска DocumentPropertyList. Пример создания такого списка свойств см. в разделе CREATE SEARCH PROPERTY LIST (Transact-SQL).
В примере указано, что отслеживание изменений отключено (без заполнения). Позже, в часы с наименьшей загрузкой, будет запущено полное заполнение нового индекса и включено автоматическое отслеживание изменений с помощью инструкции ALTER FULLTEXT INDEX.
Копировать
CREATE FULLTEXT INDEX ON Production.Document
(
Title
Language 1033,
DocumentSummary
Language 1033,
Document
TYPE COLUMN FileExtension
Language 1033
)
KEY INDEX PK_Document_DocumentID
WITH STOPLIST = SYSTEM, SEARCH PROPERTY LIST = DocumentPropertyList, CHANGE_TRACKING OFF, NO POPULATION;
GO
Позже, в часы с наименьшей загрузкой, выполняется заполнение индекса:
Копировать
ALTER FULLTEXT INDEX ON Production.Document SET CHANGE_TRACKING AUTO;
GO