116 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
			
		
		
	
	
			116 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			Transact-SQL
		
	
	
	
	
	
| 
 | |
| EXEC sp_fulltext_database 'enable'
 | |
| go
 | |
| IF EXISTS (select  ssche.name as TABLE_OWNER,		sobj.name as TABLE_NAME,		sidx.name as FULLTEXT_KEY_INDEX_NAME,
 | |
| 		sidxcol.column_id as FULLTEXT_KEY_COLID,		sftidx.is_enabled as FULLTEXT_INDEX_ACTIVE,		scat.name as FULLTEXT_CATALOG_NAME
 | |
| 	from    sys.objects as sobj 
 | |
| 		join sys.fulltext_indexes as sftidx on (sobj.object_id = sftidx.object_id)
 | |
| 		join sys.indexes as sidx on(sftidx.unique_index_id = sidx.index_id and sftidx.object_id = sidx.object_id)
 | |
| 		join sys.schemas as ssche on (sobj.schema_id = ssche.schema_id)
 | |
| 		join sys.index_columns as sidxcol on (sftidx.object_id = sidxcol.object_id and sftidx.unique_index_id = sidxcol.index_id)
 | |
| 		left outer join sys.fulltext_catalogs as scat on (scat.fulltext_catalog_id = sftidx.fulltext_catalog_id)
 | |
| where sobj.name ='CONTENTS')
 | |
| 	DROP FULLTEXT INDEX ON CONTENTS
 | |
| IF EXISTS (select  ssche.name as TABLE_OWNER,		sobj.name as TABLE_NAME,		sidx.name as FULLTEXT_KEY_INDEX_NAME,
 | |
| 		sidxcol.column_id as FULLTEXT_KEY_COLID,		sftidx.is_enabled as FULLTEXT_INDEX_ACTIVE,		scat.name as FULLTEXT_CATALOG_NAME
 | |
| 	from    sys.objects as sobj 
 | |
| 		join sys.fulltext_indexes as sftidx on (sobj.object_id = sftidx.object_id)
 | |
| 		join sys.indexes as sidx on(sftidx.unique_index_id = sidx.index_id and sftidx.object_id = sidx.object_id)
 | |
| 		join sys.schemas as ssche on (sobj.schema_id = ssche.schema_id)
 | |
| 		join sys.index_columns as sidxcol on (sftidx.object_id = sidxcol.object_id and sftidx.unique_index_id = sidxcol.index_id)
 | |
| 		left outer join sys.fulltext_catalogs as scat on (scat.fulltext_catalog_id = sftidx.fulltext_catalog_id)
 | |
| where sobj.name ='DOCUMENTS')
 | |
| 	DROP FULLTEXT INDEX ON Documents
 | |
| GO
 | |
| GO
 | |
| declare @ftc as sysname
 | |
| IF EXISTS(select name from sys.fulltext_catalogs)
 | |
| begin
 | |
| 	select @ftc = 'DROP FULLTEXT CATALOG ' + name from sys.fulltext_catalogs
 | |
| 	exec sp_sqlexec @ftc
 | |
| end
 | |
| CREATE FULLTEXT CATALOG FT_Catalog
 | |
| go
 | |
| CREATE FULLTEXT INDEX ON Contents
 | |
| (
 | |
| Text
 | |
| Language 1033
 | |
| )
 | |
| KEY INDEX PK_Contents ON FT_Catalog
 | |
| WITH CHANGE_TRACKING AUTO
 | |
| GO
 | |
| CREATE FULLTEXT INDEX ON Documents
 | |
| (
 | |
| DocAscii
 | |
| Language 1033
 | |
| )
 | |
| KEY INDEX PK_Documents ON FT_Catalog
 | |
| WITH CHANGE_TRACKING AUTO
 | |
| GO
 | |
| select case FullTextCatalogProperty('FT_Catalog', 'PopulateStatus')
 | |
| 
 | |
|           when 0 then 'Idle'
 | |
| 
 | |
|           when 1 then 'Full population in progress'
 | |
| 
 | |
|           when 2 then 'Paused'
 | |
| 
 | |
|           when 3 then 'Throttled'
 | |
| 
 | |
|           when 4 then 'Recovering'
 | |
| 
 | |
|           when 5 then 'Shutdown'
 | |
| 
 | |
|           when 6 then 'Incremental population in progress'
 | |
| 
 | |
|           when 7 then 'Building index'
 | |
| 
 | |
|           when 8 then 'Disk is full. Paused.'
 | |
| 
 | |
|           when 9 then 'Change tracking'
 | |
| 
 | |
|           else 'Error reading FullTextCatalogProperty PopulateStatus'
 | |
| 
 | |
|         end
 | |
| 
 | |
| 
 | |
| select FullTextCatalogProperty('FT_Catalog', 'PopulateStatus')
 | |
| /*
 | |
| SELECT * FROM contents WHERE CONTAINS(text, '"FOLLOW*"') -- prefix Follow
 | |
| SELECT * FROM contents WHERE CONTAINS(text, '"FOLLOW"') -- exact Follow
 | |
| SELECT * FROM contents WHERE CONTAINS(text, 'PORV AND SG') -- boolean
 | |
| SELECT * FROM contents WHERE CONTAINS(text, 'PORV NEAR SG') -- boolean
 | |
| SELECT * FROM contents WHERE CONTAINS(text, '"SG AND PORV"') -- boolean
 | |
| SELECT * FROM contents WHERE CONTAINS(text, '"SG*" AND "PORV*"') -- boolean
 | |
| SELECT * FROM contents WHERE CONTAINS(text, '"SG" AND "PORV"') -- boolean
 | |
| SELECT * FROM contents WHERE CONTAINS(text, '"SG*" AND "PORV*"') -- boolean
 | |
| 	AND NOT CONTAINS(text, '"SG" AND "PORV"') -- boolean
 | |
| SELECT * FROM contents WHERE CONTAINS(text, '"SG PORV"') -- boolean
 | |
| SELECT * FROM contents WHERE text like '%SG PORV%' -- SQL Search
 | |
| 
 | |
| SELECT * FROM contents WHERE CONTAINS(text, 'FORMSOF(INFLECTIONAL, "foot")'); -- inflectional foot
 | |
| SELECT * FROM contents WHERE CONTAINS(text, '"run*"'); -- prefix run
 | |
| SELECT * FROM contents WHERE CONTAINS(text, 'FORMSOF(INFLECTIONAL, "run")'); -- inflectional run
 | |
| SELECT * FROM contents WHERE CONTAINS(text, '"run*"')
 | |
|  AND NOT CONTAINS(text, 'FORMSOF(INFLECTIONAL, "run")'); -- prefix run and not inflectional run
 | |
| SELECT * FROM contents WHERE CONTAINS(text, '"vacuum decrease*"'); -- prefix vacuum decrease
 | |
| 
 | |
| SELECT count(*) DG_or_DieselGenerator FROM contents where text like '%DG%' OR text like '%DIESEL GENERATOR%'
 | |
| SELECT count(*) DG FROM contents where text like '%DG%'
 | |
| SELECT count(*) DieselGenerator FROM contents where text like '%DIESEL GENERATOR%'
 | |
| SELECT *  FROM contents where text like '%DIESEL GENERATOR%'
 | |
| 
 | |
| SELECT * FROM contents WHERE CONTAINS(text, 'FORMSOF(THESAURUS, "DG*")'); -- 
 | |
| SELECT * FROM contents WHERE CONTAINS(text, 'FORMSOF(THESAURUS, "DIESEL GENERATOR")'); -- 
 | |
| SELECT * FROM contents WHERE FREETEXT(text, '"DIESEL GENERATOR*"'); -- 
 | |
| SELECT * FROM contents WHERE FREETEXT(text, '"DG*"'); -- 
 | |
| SELECT * FROM contents WHERE CONTAINS(text, 'FORMSOF(THESAURUS, "SG")'); -- 
 | |
| SELECT * FROM contents WHERE CONTAINS(text, 'FORMSOF(THESAURUS, "STEAM GENERATOR")'); -- 
 | |
| 
 | |
| EXEC sp_fulltext_load_thesaurus_file 1033;
 | |
| SELECT * FROM contents WHERE CONTAINS(text, '"RUN*" and "PUMP*"'); -- 
 | |
| SELECT * FROM contents WHERE CONTAINS(text, 'FORMSOF(INFLECTIONAL, "run") and "PUMP*"'); -- 
 | |
| SELECT * FROM contents WHERE CONTAINS(text, '"RUN*" and "PUMP*"') -- 
 | |
|   AND NOT CONTAINS(text, 'FORMSOF(INFLECTIONAL, "run") and "PUMP*"'); -- 
 | |
| */
 |