程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> MicrosoftSQLServer全文索引服務-編程提高篇

MicrosoftSQLServer全文索引服務-編程提高篇

編輯:關於SqlServer
關於安裝設置和基本編程請參見Microsoft SQL Server 全文索引服務安裝設置篇(http://www.chinaasp.com/faq/showfaq.asp?id=1234)和Microsoft SQL Server 全文索引服務編程篇(http://www.chinaasp.com/faq/showfaq.ASP?id=1235)。
  
  SQL 7的全文檢索和Index Server的檢索方式非常類似。
  
  Contains
  AND, OR, NOT
  可以在Contains中很方便使用邏輯表達式
  
  Example:
  Select username from member where contains(userinfo,'"作家" AND "木匠"')Select username from member where contains(userinfo,'"作家" OR "木匠"')Select username from member where contains(userinfo,'"作家" AND NOT "木匠"')NEAR
  這是一個在普通的邏輯表達式中沒有的關鍵字,意思是很簡單,就是說找到靠近的兩個詞Example:
  Select Content from MicrosoftRecord where contains(Content,'"比爾?蓋茨" NEAR "保羅?艾倫"')這就表示要找到全文中包含比爾?蓋茨和保羅?艾倫,並且兩個詞相隔不遠。
  
  FORMSOF INFLECTIONAL
  這個功能可以查找單詞的各種形式,比如過去式、復數、動詞形式、名詞形式等。可惜對中文沒什麼用Example:
  SELECT ProductName FROM Products WHERE CONTAINS(ProductName,'FORMSOF (INFLECTIONAL, dry)')*
  這個功能可以查找單詞的前綴,不過對中文也沒有什麼用處
  
  Example:
  SELECT ProductName FROM Products WHERE CONTAINS(ProductName, '"dis*"')
  
  ISABOUT WEIGHT
  這個功能可以給復合查詢時不同的條件以不同的權重,以決定返回的記錄集的順序SELECT CategoryName, Description FROM CategorIEs WHERE CONTAINS(Description, 'ISABOUT spread weight (.8), sauces weight (.4), relishes weight (.2) )' )
  權重的值可以從0.0到1.0
  
  ContainsTable
  它的使用方式和Contains基本相同,這裡就不再重復介紹了。要提到的是它返回的是一張供你進一步查詢的表,而不是一個查詢條件。
  
  FreeText
  如果使用這種方式,那麼查詢的時候會使用分詞技術來實現模糊查詢,並且過濾掉一些非關鍵詞,比較類似於Contains中的FORMSOF,可惜對中文也沒有什麼支持
  
  Example:
  SELECT CategoryName FROM CategorIEs WHERE FREETEXT (Description, 'sweetest candy bread and dry meat' )FreeTextTable
  它和FreeText的差別就跟Contains和ContainsTable的差別一樣。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved