<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    使用SQL SERVER 2000的全文檢索功能

    步驟:

    1、??打開NorthWind數據庫,右鍵Products表,選擇“全文索引表”,“在表上定義全文索引”,為其創建全文目錄。在“全文索引向導”中,選擇你需要全文查詢條件的列(可以是文本或圖像),我們選擇Productname和QuantityPerUnit列。然后下一步,輸入一個新的目錄proCatalog,點擊下一步。在填充調度一項里,我們暫時不建立填充調度。接著“下一步”,全成全文索引向導。完成后,我們可以看到在“全文目錄”里,多了一個全文目錄proCatalog。右鍵proCatalog屬性,可以看到其狀態、表、調度情況。
    2、??右鍵全文目錄proCatalog,?“啟動完全填充”,系統會出現“全文目錄填充成功啟動”。
    3、??這時,我們可以使用Transact-SQL進行全文檢索了,我們使用CONTAINS、FREETEXT等謂詞。如:


    檢索ProductName中,即包含b又包含c的所有列

    SELECT?*

    FROM?Products

    WHERE?CONTAINS(ProductName,?'"c*"?and?"b*"?')

    ?

    檢索ProductName中,即包含chai?chang?tofu之一的所有列

    SELECT?*

    FROM?Products

    WHERE?FREETEXT(ProductName,?'chai?chang?tofu?')

    ?

    我們還可以使用CONTAINSTABLE、FREETEXTTABLE等

    ?

    4、??我們可以用.NET創建WEB或Form客戶端,提供一個良好的全文檢索界面,使自己的應用程序得到擴展

    ?

    ?

    ?

    參考:
    全文查詢有關的系統存儲過程

    (1)啟動數據庫的全文處理功能(sp_fulltext_datebase);?
    (2)建立全文目錄(sp_fulltext_catalog);?
    (3)在全文目錄中注冊需要全文索引的表(sp_fulltext_table);?
    (4)指出表中需要全文檢索的列名(sp_fulltext_column)?
    (5)為表創建全文索引(sp_fulltext_table);?
    (6)填充全文索引(sp_fulltext_catalog)。

    ?

    ?

    ?

    全文查詢支持

    Microsoft&reg;?SQL?Server&#8482;?2000?在接收帶全文構造的?Transact-SQL?語句時,使用全文提供程序從?Microsoft?搜索服務檢索所需信息。全文構造是?CONTAINS?或?FREETEXT?謂詞,或者是?CONTAINSTABLE?或?FREETEXTTABLE?行集函數。如果不知道包含搜索條件的列,全文構造可以在全文索引中引用多列。該進程的流程如下圖所示。

    ?


    這一進程涉及的步驟包括:?

    應用程序給?SQL?Server?實例發送帶全文構造的?Transact-SQL?語句。

    SQL?Server?關系引擎通過查詢系統表驗證全文構造,確定全文索引是否覆蓋列引用。關系引擎將每個?SQL?語句簡化為一系列行集操作,并使用?OLE?DB?將這些操作傳遞給基礎組件,通常是存儲引擎。關系引擎通過全文提供程序而不是存儲引擎,將任何全文構造轉換成對行集的請求。請求的行集是滿足搜索條件和等級的鍵集,而這個等級表示每個鍵的數據滿足搜索條件的程度。向全文提供程序發送的行集請求命令包括全文檢索條件。

    全文提供程序驗證請求并將搜索條件更改為由Microsoft?搜索服務的查詢支持組件使用的形式。將請求發送到搜索服務。

    查詢支持組件使用搜索引擎組件從全文索引析取所請求的數據。然后以行集的形式將這些數據傳遞回全文提供程序。

    全文提供程序將這個行集返回給關系引擎。

    關系引擎將它從存儲引擎和全文提供程序收到的所有行集進行組合,以生成發送回客戶端的最終結果集。?

    ?

    全文目錄和索引

    Microsoft&reg;?SQL?Server&#8482;?2000?全文索引為在字符串數據中進行復雜的詞搜索提供有效支持。全文索引存儲關于重要詞和這些詞在特定列中的位置的信息。全文查詢利用這些信息,可快速搜索包含具體某個詞或一組詞的行。

    全文索引包含在全文目錄中。每個數據庫可以包含一個或多個全文目錄。一個目錄不能屬于多個數據庫,而每個目錄可以包含一個或多個表的全文索引。一個表只能有一個全文索引,因此每個有全文索引的表只屬于一個全文目錄。

    全文目錄和索引不存儲在它們所屬的數據庫中。目錄和索引由?Microsoft?搜索服務分開管理。

    全文索引必須在基表上定義,而不能在視圖、系統表或臨時表上定義。?全文索引的定義包括:?

    能唯一標識表中各行的列(主鍵或候選鍵),而且不允許?NULL?值。

    索引所覆蓋的一個或多個字符串列。?

    全文索引由鍵值填充。每個鍵的項提供與該鍵相關聯的重要詞(干擾詞或終止詞除外)、它們所在的列和它們在列中的位置等有關信息。

    格式化文本字符串(如?Microsoft&reg;?Word&#8482;?文檔文件或?HTML?文件)不能存儲在字符串或?Unicode?列中,因為這些文件中的許多字節包含不構成有效字符的數據結構。數據庫應用程序可能仍需要訪問這些數據并對其應用全文檢索。因為?image?列并不要求每一字節都構成一個有效字符,所以許多站點將這類數據存儲在?image?列中。SQL?Server?2000?引入了對存儲在?image?列中的這些類型的數據執行全文檢索的能力。SQL?Server?2000?提供篩選,可從?Microsoft?Office&#8482;?文件(.doc、.xls?和?.ppt?文件)、文本文件(.txt?文件)及?HTML?文件(.htm?文件)中析取文本化數據。設計表時除包括保存數據的?image?列外,還需包括綁定列來保存存儲在?image?列中的數據格式的文件擴展名??梢詣摻ㄒ?image?列和綁定列的全文索引,以便在存儲于?image?列中的文本化信息上啟用全文檢索。SQL?Server?2000?全文檢索引擎使用綁定列中的文件擴展名信息,選擇從列中析取文本化數據的合適的篩選。

    全文索引是用于執行兩個?Transact-SQL?謂詞的組件,以便根據全文檢索條件對行進行測試:?

    CONTAINS

    FREETEXT?

    Transact-SQL?還包含兩個返回符合全文檢索條件的行集的函數:?

    CONTAINSTABLE

    FREETEXTTABLE?

    SQL?Server?在內部將搜索條件發送給?Microsoft?搜索服務。Microsoft?搜索服務查找所有符合全文檢索條件的鍵并將它們返回給?SQL?Server。SQL?Server?隨后使用鍵的列表來確定表中要處理的行。

    全文索引

    對?Microsoft&reg;?SQL?Server&#8482;?2000?數據的全文支持涉及兩個功能:對字符數據發出查詢的能力和創建及維護基礎索引以簡化這些查詢的能力。

    全文索引在許多地方與普通的?SQL?索引不同。

    普通?SQL?索引
    ?全文索引
    ?
    存儲時受定義它們所在的數據庫的控制。
    ?存儲在文件系統中,但通過數據庫管理。
    ?
    每個表允許有若干個普通索引。
    ?每個表只允許有一個全文索引。
    ?
    當對作為其基礎的數據進行插入、更新或刪除時,它們自動更新。
    ?將數據添加到全文索引稱為填充,全文索引可通過調度或特定請求來請求,也可以在添加新數據時自動發生。
    ?
    不分組。
    ?在同一個數據庫內分組為一個或多個全文目錄。
    ?
    使用?SQL?Server?企業管理器、向導或?Transact-SQL?語句創建和除去。
    ?使用?SQL?Server?企業管理器、向導或存儲過程創建、管理和除去。
    ?


    ?

    這些差異使大量管理任務變得不可缺少。全文管理是在幾個層次上實施的:?

    服務器?

    可以對服務器范圍的某些屬性(如?resource_usage)加以設置,以便增加或減少全文服務所使用的系統資源數量。


    說明??全文引擎作為名為?Microsoft?搜索的服務在?Microsoft?Windows?NT&reg;?Server?和?Microsoft?Windows&reg;?2000?Server?上運行。對于?Microsoft?SQL?Server?個人版,Microsoft?搜索服務不可用。盡管這意味著?Microsoft?搜索服務既未安裝在?Microsoft?Windows?95/98?上,也未安裝在?Windows?NT?工作站或?Windows?2000?Professional?客戶端上,但這些客戶端在連接到?SQL?Server?標準版安裝或企業版實例時可以使用這項服務。

    數據庫?

    必須啟用數據庫才能使用全文服務。可以在已啟用的數據庫中創建和除去一個或多個全文目錄的元數據。

    全文目錄?

    全文目錄包含數據庫中的全文索引。每個目錄可以用于數據庫內的一個或多個表的索引需求。該目錄中的索引是使用這里介紹的管理功能來填充的。(全文目錄必須駐留在與?SQL?Server?實例相關聯的本地硬盤驅動器上。不支持可移動的驅動器、軟盤和網絡驅動器)。在每個服務器上最多可創建?256?個全文目錄。


    說明??Windows?NT?故障轉移群集環境完全支持全文索引。有關更多信息,請參見在故障轉移群集中運行全文查詢。

    表?

    首先,必須為全文支持啟用表。然后,為與該表相關聯的全文索引創建元數據(如表名及其全文目錄)。表啟用后,可以用為全文支持而啟用的列中的數據填充它。如果表的全文定義被更改(例如,添加一個也將為全文檢索而索引的新列),則必須重新填充相關的全文目錄以使全文索引與新的全文定義同步。

    列?

    可以從非活動的注冊表中添加或除去支持全文查詢的列。

    在所有這些級別上,可使用工具檢索元數據和狀態信息。

    和常規?SQL?索引一樣,當在相關表中修改數據時,可自動更新全文索引?;蛘?,也可以適當的間隔手工重新填充全文索引。這種重寫可能既耗時又大量占用資源,因此,在數據庫活動較少時,這通常是在后臺運行的異步進程。

    應將具有相同更新特性的表(如更改少的與更改多的,或在一天的特定時段內頻繁更改的表)組合在一起,并分配給相同的全文目錄。通過以此方法設置全文目錄填充調度,使得全文索引和表保持同步,且在數據庫活動較多時不對數據庫服務器的資源使用產生負面影響。

    為全文目錄中的表安排全文索引的位置是非常重要的。在為全文目錄指定表時,應該注意下列基本原則:?

    始終選擇可用于全文唯一鍵的最小唯一索引。(4?個字節且基于整數的索引是最佳的。)這將顯著減少文件系統中?Microsoft?搜索服務所需要的資源。如果主鍵很大(超過?100?字節),可以考慮選擇表中其它唯一索引(或創建另一個唯一索引)作為全文唯一鍵。否則,如果全文唯一鍵的大小達到允許的上限(450?字節),全文填充將無法繼續進行。

    如果進行索引的表有成千上萬行,請將該表指定給其自己的全文目錄。

    應該考慮對其進行全文索引的表中發生的更改數以及表的行數。如果要更改的總行數,加上上次全文填充期間表中出現的行數達到成千上萬行,請將該表指定給其自己的全文目錄。?

    請參見

    sp_fulltext_table

    CONTAINS

    一個謂詞,用于搜索包含基于字符的數據類型的列,該列與單個詞和短語,以及與另一個詞一定范圍之內的近似詞精確或模糊(不太精確的)匹配或者加權匹配。CONTAINS?可以搜索:?

    詞或短語。

    詞或短語的前綴。

    另一個詞附近的詞。

    由另一個詞的詞尾變化生成的詞(例如,詞?drive?是?drives、drove、driving?和?driven?詞尾變化的詞干)。

    比另一個詞具有更高加權的詞。?

    語法
    CONTAINS
    ????(?{?column?|?*?}?,?'<?contains_search_condition?>'??????

    ?

    FREETEXT

    是個謂詞,用于搜索含有基于字符的數據類型的列,其中的值符合在搜索條件中所指定文本的含義,但不符合表達方式。使用?FREETEXT?時,全文查詢引擎內部將?freetext_string?拆分為若干個搜索詞,并賦予每個詞以不同的加權,然后查找匹配。

    語法

    FREETEXT?(?{?column?|?*?}?,?'freetext_string'?

    ?

    CONTAINSTABLE?和?FREETEXTTABLE?函數用來指定返回每行的相對排名的全文查詢。這兩個函數與全文謂詞?CONTAINS?和?FREETEXT?很相似,但是用法不同。

    posted on 2006-07-18 09:48 國強 閱讀(286) 評論(0)  編輯  收藏 所屬分類: sqlserver

    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導航

    統計

    常用鏈接

    留言簿(1)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    收藏夾

    java

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 色吊丝永久在线观看最新免费| 国产精品色拉拉免费看| 国产午夜免费福利红片| 亚洲youwu永久无码精品| 大地资源免费更新在线播放| 亚洲大香人伊一本线| 亚洲免费电影网站| 亚洲人成免费电影| 成年人在线免费看视频| 亚洲欧美自偷自拍另类视| 国产真实伦在线视频免费观看 | 久久精品国产亚洲精品2020| 麻豆精品不卡国产免费看| 亚洲av色福利天堂| 97性无码区免费| 亚洲精品无码中文久久字幕| 日本免费中文字幕在线看| 永久免费观看黄网站| 亚洲精品乱码久久久久久蜜桃不卡 | 亚洲综合av一区二区三区| 国产日产成人免费视频在线观看| 国产亚洲情侣久久精品| 中文字幕在亚洲第一在线| 青青草原1769久久免费播放| 亚洲精品中文字幕乱码影院| 妞干网手机免费视频| 无套内谢孕妇毛片免费看看 | 91亚洲国产在人线播放午夜| 国产在线a免费观看| 亚洲美国产亚洲AV| 亚洲综合久久夜AV | 久久精品人成免费| 亚洲欧洲无卡二区视頻| 亚洲国产美女精品久久久久∴| 国产精品色拉拉免费看| 黄色免费在线观看网址| 久久伊人久久亚洲综合| 在线免费视频一区二区| 野花香高清视频在线观看免费| 亚洲精品综合在线影院| 国产亚洲精品一品区99热|