1 --==============================全文索引=============================== 2 --建立全文目錄 3 --要建立全文索引前必須先建立全文目錄 4 CREATE FULLTEXT CATALOG TSQL全文目錄 5 WITH ACCENT_SENSITIVITY = ON --是否區分重音 6 AS DEFAULT --默認目錄 7 AUTHORIZATION dbo --全部者 8 9 --修改全文目錄 10 ALTER FULLTEXT CATALOG TSQL全文目錄 11 REBUILD --從新生成全文目錄 12 WITH ACCENT_SENSITIVITY = OFF 13 14 --刪除全文目錄 15 DROP FULLTEXT CATALOG TSQL全文目錄 16 17 --建立全文索引 18 --每一個表只能有一個全文索引 19 --每一個全文目錄能夠有多個全文索引,每一個全文索引只能屬於一個全文目錄 20 CREATE FULLTEXT INDEX --全文索引是沒有名字的! 21 ON [dbo].[類別](說明) --ON 表名(字段名) 22 KEY INDEX [aaaaa類別_PK] --必須指定一個現有的惟一索引 23 ON TSQL全文目錄 --ON 全文目錄 24 25 --修改全文索引 26 ALTER FULLTEXT INDEX 27 ON [dbo].[類別] 28 DISABLE --禁用 29 30 --刪除全文索引 31 DROP FULLTEXT INDEX ON [dbo].[類別] 32 33 --填充(更新)全文索引 34 ALTER FULLTEXT INDEX 35 ON [dbo].[類別] 36 START FULL POPULATION 37 38 --CONTAINS搜索 39 --單個詞搜索 40 SELECT * FROM [dbo].[類別] 41 WHERE CONTAINS(說明,'others') 42 43 --多詞搜索 44 SELECT * FROM [dbo].[類別] 45 WHERE CONTAINS(說明,'"others" or "meat"') --做爲總體字符串傳遞 46 --WHERE CONTAINS(說明,'others' or 'meat') 是錯的! 47 48 --派生詞搜索 49 --注意斷字符語言必須是英語等有派生詞的語言才起做用 50 --brought也能搜到了 51 SELECT * FROM [dbo].[類別] 52 WHERE CONTAINS(說明, 'FORMSOF(INFLECTIONAL,"bring")') --注意第2個參數必是字符串 53 54 --前綴詞搜索 55 --注意只能用*,只能放在字母以後 56 SELECT * FROM [dbo].[類別] 57 WHERE CONTAINS(說明, '"c*"') 58 59 --加權詞搜索 60 --加權值介於0和1之間,加權值越高排名越靠前 61 --加權值對CONTAINS無效,只對CONTAINSTABLE有效! 62 SELECT * FROM [dbo].[類別] 63 WHERE CONTAINS(說明, 'ISABOUT("meat" weight(0.9), 64 "others" weight(0.6))') 65 66 --FREETEXT搜索 67 --精度沒有CONTAINS高,只要包含任一字或單詞都會檢索出來 68 SELECT * FROM [dbo].[類別] 69 WHERE FREETEXT(說明, 'dog meat xxxxx') 70 71 --CONTAINSTABLE搜索 72 --KEY表示就是建立全文索引時指定的惟一鍵 73 SELECT * FROM 74 CONTAINSTABLE([dbo].[類別],說明, 'meat') 75 76 --目標:查詢說明字段中含有某些詞的前10條數據,並按權值排序 77 SELECT a.* FROM [dbo].[類別] a 78 JOIN CONTAINSTABLE( 79 [dbo].[類別],說明, 'ISABOUT("coffee" weight(0.9), 80 "meat" weight(0.8), 81 "dog" weight(0.7))', 82 10 83 )b 84 ON a.類別ID = b.[KEY] 85 86 --FREETEXTTABLE搜索 87 SELECT * FROM [dbo].[類別] a 88 JOIN FREETEXTTABLE([dbo].[類別],說明,'dog meat xxxxx') b 89 ON a.類別ID = b.[KEY]