Создание полнотекстового индекса

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