SQL 2005 全文索引


 全文索引技術是目前搜索引擎的關鍵技術。
試想在1M大小的文件中搜索一個詞,可能需要幾秒,在100M的文件中可能需要幾十秒,如果在更大的文件中搜索那么就需要更大的系統開銷,這樣的開銷是不現實的。
所以在這樣的矛盾下出現了全文索引技術,有時候有人叫倒排文檔技術。
原理是先定義一個詞庫,然后在文章中查找每個詞條(term)出現的頻率和位置,把這樣的頻率和位置信息按照詞庫的順序歸納,這樣就相當于對文件建立了一個以詞庫為目錄的索引,這樣查找某個詞的時候就能很快的定位到該詞出現的位置。
問題在處理英文文檔的時候顯然這樣的方式是非常好的,因為英文自然的被空格分成若干詞,只要我們有足夠大的詞匯庫就能很好的處理。但是亞洲文字因為沒有空格作為斷詞標志,所以就很難判斷一個詞,而且人們使用的詞匯在不斷的變化,而維護一個可擴展的詞匯庫的成本是很高的,所以問題出現了。
解決出現這樣的問題使“分詞”成為全文索引的關鍵技術。目前有兩中基本的方法:
二元法 它把所有有可能的每兩兩漢字的組合看為一個詞組,這樣就沒有維護詞庫的開銷。
詞庫法 它使使用詞庫中的詞作為切分的標準,這樣也出現了詞庫跟不上詞匯發展的問題,除非你維護詞庫。
實際上現在很多著名的搜索引擎都使用了多種分詞的辦法,比如“正向最大匹配”+“逆向最大匹配”,基于統計學的新詞識別,自動維護詞庫等技術,但是顯然這樣的技術還沒有作到完美。
目前全文索引技術正走向人工智能化,也是發展的方向。

===============================

一個完整的SQL SERVER數據庫全文索引的示例?日期:2009-08-28 14:18
SQL SERVER數據庫全文索引的示例,以pubs數據庫為例。
首先,介紹利用系統存儲過程創建全文索引的具體步驟:?
1) 啟動數據庫的全文處理功能 (sp_fulltext_database)?
2) 建立全文目錄 (sp_fulltext_catalog)?
3) 在全文目錄中注冊需要全文索引的表 (sp_fulltext_table)?
4) 指出表中需要全文索引的列名 (sp_fulltext_column)?
5) 為表創建全文索引 (sp_fulltext_table)?
6) 填充全文目錄 (sp_fulltext_catalog)?
---------********示例********-------------?
以對pubs數據庫的title和notes列建立全文索引,之后使用索引查詢title列或notes列中包含有datebase 或computer字符串的圖書名稱:?
在這之前,需要安裝Microsoft Search服務,啟動SQL server全文搜索服務?
user pubs --打開數據庫?
go?
--檢查數據庫pubs是否支持全文索引,如果不支持?
--則使用sp_fulltext_database 打開該功能?
if(select databaseproperty('pubs','isfulltextenabled'))=0?
execute sp_fulltext_database 'enable'?
--建立全文目錄FT_PUBS?
execute sp_fulltext_catalog 'FT_pubs','create'?
--為title表建立全文索引數據元?
execute sp_fulltext_table 'title','create','FT_pubs','UPKCL_titleidind'?
--設置全文索引列名?
execute sp_fulltext_column 'title','title','add'?
execute sp_fulltext_column 'title','notes','add'?
--建立全文索引?
--activate,是激活表的全文檢索能力,也就是在全文目錄中注冊該表?
execute sp_fulltext_table 'title','activate'?
--填充全文索引目錄?
execute sp_fulltext_catalog 'FT_pubs','start_full'?
go?
--檢查全文目錄填充情況?
While fulltextcatalogproperty('FT_pubs','populateStatus')<>0?
begin?
--如果全文目錄正處于填充狀態,則等待30秒后再檢測一次?
waitfor delay '0:0:30'?
end?
--全文目錄填充完成后,即可使用全文目錄檢索?
select title?
form?
where CONTAINS(title,'database')?
or CONTAINS(title,'computer')?
or CONTAINS(notes,'database')?
or CONTAINS(notes,'database')?
?
'--------------以下介紹一下全文操作類的系統存儲過程?
過程名稱:sp_fulltext_service?
執行權限:serveradmin或系統管理員?
作 用:設置全文搜索屬性?
過程名稱:sp_fulltext_catalog?
執行權限:db_owner及更高角色成員?
作 用:創建和刪除一個全文目錄,啟動或停止一個全文目錄的索引操作?
過程名稱:sp_fulltext_database?
執行權限:db_owner角色成員?
作 用:初始化全文索引或刪除數據庫中所有全文目錄?
過程名稱:sp_fulltext_table?
執行權限:db_ddladnmin或db_owner角色成員?
作 用:將一個表標識為全文索引表或非全文索引表?
過程名稱:sp_fulltext_column?
執行權限:db_ddladnmin角色成員?
作 用:指出一個全文索引表中的那些列假如或退出全文索引



本文轉自黃聰博客園博客,原文鏈接:http://www.cnblogs.com/huangcong/archive/2010/05/07/1729512.html如需轉載請自行聯系原作者

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/257639.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/257639.shtml
英文地址,請注明出處:http://en.pswp.cn/news/257639.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python重命名窗口_Python:即時重命名方法名稱

如果要繼續在已切換到使用屬性的對象上使用get_Field和set_Field(您只需訪問或分配給Field),則可以使用包裝器對象&#xff1a;class NoPropertyAdaptor(object):def __init__(self, obj):self.obj objdef __getattr__(self, name):if name.startswith("get_"):retu…

nginx優化之請求直接返回json數據

對于有些服務端接口返回是固定值的json&#xff0c;可通過配置nginx直接返回json&#xff0c;減少程序的加載對資源的占用&#xff0c;減少接口響應時間 location ~* (request/update)$ { default_type application/json; return 200 {"update":"no&quo…

ARP掃描工具arp-scan

2019獨角獸企業重金招聘Python工程師標準>>> ARP掃描工具arp-scan arp-scan是Kali Linux自帶的一款ARP掃描工具。該工具可以進行單一目標掃描&#xff0c;也可以進行批量掃描。批量掃描的時候&#xff0c;用戶可以通過CIDR、地址范圍或者列表文件的方式指定。該工具…

數據庫索引的作用和優點缺點

為什么要創建索引呢&#xff1f;這是因為&#xff0c;創建索引可以大大提高系統的性能。 第一&#xff0c;通過創建唯一性索引&#xff0c;可以保證數據庫表中每一行數據的唯一性。 第二&#xff0c;可以大大加快 數據的檢索速度&#xff0c;這也是創建索引的最主要的原因。 第…

elementui el-from 怎樣顯示圖片_vue2.0使用weui.js的uploader組件上傳圖片(兼容移動端)...

本文已同步到專業技術網站 www.sufaith.com, 該網站專注于前后端開發技術與經驗分享, 包含Web開發、Nodejs、Python、Linux、IT資訊等板塊.最近在使用 vue2.0開發微信公眾號網頁 其中涉及到 選擇圖片, 圖片的壓縮上傳, 預覽, 刪除等操作。項目整體UI框架使用的是 vux, 但可惜的…

面向對象分析

在需求獲取階段&#xff0c;開發人員關注于理解用戶以及他們的使用要求。而在需求分析階段&#xff0c;開發人員關注于理解系統需要構建的內容&#xff0c;其核心是產生一個準確的、完整的、一致的和可驗證的系統模型&#xff0c;稱為分析模型。 面對對象的分析模型由三個獨立的…

python字典輸入學生信息_如何用Python將XML中的所有信息輸入字典

我通常使用標準庫中的ElementTree模塊解析XML。它沒有給你一個字典&#xff0c;你得到了一個更有用的DOM結構&#xff0c;它允許你為孩子們遍歷每個元素。from xml.etree import ElementTree as ETxml ET.parse("root_element xml.getroot()for child in root_element:.…

HDU4267(2012年長春站)

這道題真的是好題&#xff0c;讓我對線段樹有了全新的認識&#xff0c;至少讓我真正感受到了線段樹的神奇。 題意是就是線段樹區間更新&#xff0c;單點詢問的問題&#xff0c;不過這個題好就好在它的區間更新的點并不連續&#xff01; adding c to each of Ai which satisfies…

ITFriend創業敗局(四):菜鳥CEO的自我修養

自創業自封CEO以來&#xff0c;短短3個月&#xff0c;又經歷了無數的磨練&#xff0c;快速成長中。創業不同于打工&#xff0c;他要求你必須有全局觀和綜合能力&#xff0c;技術、市場、商務&#xff0c;啥都得會&#xff0c;還要處理各種各樣的問題和矛盾。根據個人經歷&#…

51nod 1050 循環數組最大子段和

1050 循環數組最大子段和 N個整數組成的循環序列a[1],a[2],a[3],…,a[n]&#xff0c;求該序列如a[i]a[i1]…a[j]的連續的子段和的最大值&#xff08;循環序列是指n個數圍成一個圈&#xff0c;因此需要考慮a[n-1],a[n],a[1],a[2]這樣的序列&#xff09;。當所給的整數均為負數時…

mysql設置token有效期_記住我 token保存到數據庫

記住我 token保存到數據庫這里使用jpamysqlorg.springframework.bootspring-boot-starter-data-jpamysqlmysql-connector-javaspring.datasource.driver-class-namecom.mysql.cj.jdbc.Driverspring.datasource.urljdbc:mysql://127.0.0.1:3306/fly-demo?serverTimezoneUTC&…

Spark- Linux下安裝Spark

Spark- Linux下安裝Spark 前期部署 1.JDK安裝&#xff0c;配置PATH 可以參考之前配置hadoop等配置 2.下載spark-1.6.1-bin-hadoop2.6.tgz,并上傳到服務器解壓 [rootsrv01 ~]# tar -xvzf spark-1.6.1-hadoop2.6.tgz /usr/spark-1.6.1-hadoop2.6 3.在 /usr 下創建軟鏈接到目標文…

Linux Apache 怎么修改工作模式

Apache默認為prefork模式&#xff0c;主要是考慮到穩定性的原因。  要切換到worker模式&#xff0c;則需要登錄到linux上&#xff0c;進行如下操作&#xff1a;  進入/usr/sbin目錄  cd /usr/sbin  將當前的prefork模式啟動文件改名  mv httpd httpd.prefork  將wo…

python需要背的英語單詞怎么寫_學Python必須背的42個常見單詞,看看你都會嗎?...

這42個單詞是學習Python必須背會的單詞&#xff0c;也是代碼中常見的單詞。希望你能都背下來&#xff01;&#xff01;1. adult [?d?lt] 成年人2. authentication [???θent??ke??n] 身份驗證、認證、鑒定3. bit [b?t] 稍微、小量、小塊、一點4. byte [ba?t] …

viewDidLoad、viewWillAppear、viewWillDisappear

- (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil viewDidLoad viewWillAppear viewWillDisapppear《iOS編程》P137關于視圖的初始化代碼不能寫在視圖控制器的初始化&#xff08;1&#xff09;&#xff0c;原因如下&#xff1a;為…

asp.net mvc4開啟SqlServer 會話共享模式

2019獨角獸企業重金招聘Python工程師標準>>> 應用部署結構&#xff08;精簡&#xff09;: 站點部署在Nginx后面&#xff0c;以Nginx作為反向代理&#xff0c;不希望在Nginx上設置ip_hash&#xff0c;實現比較真實的負載均衡效果。 這時考慮到需要讓site1和site2同時…

SpringMVC中,前臺jsp封裝參數,綁定參數,傳遞參數到后臺controller的過程詳解

前臺到后臺的流程&#xff1a;前臺jsp->后臺:controller控制器層->service業務層->DAO數據訪問層->數據庫model模型層。 從上面流程可知&#xff0c;前臺jsp的數據&#xff0c;想要參與到后臺的業務邏輯運算&#xff0c;關鍵是要先把前臺jsp的數據傳遞到后臺的cont…

包含min函數的棧 python_面試題_設計包含 min函數的棧

設計包含 min函數的棧()定義棧的數據結構&#xff0c;要求添加一個 minminmin函數&#xff0c;能夠得到棧的最小元素。要求函數 min、push以及 pop 的時間復雜度都是 O(1)。#include using namespace std;/*by hk 2015-7-1*/#define MAX ((~(unsigned int )0)-1)/2class stack{…

【轉】(五)unity4.6Ugui中文教程文檔-------概要-UGUI Interaction Components

原創至上&#xff0c;移步請戳&#xff1a;&#xff08;五&#xff09;unity4.6Ugui中文教程文檔-------概要-UGUI Interaction Components 4、Interaction Components 本節涵蓋了處理交互&#xff0c;例如鼠標或觸摸事件和使用鍵盤或控制器交互的 UI系統中的組件。 4.1 Select…

j2ee 簡單網站搭建:(十)jquery ztree 插件使用入門

為什么80%的碼農都做不了架構師&#xff1f;>>> 《j2ee 簡單網站搭建&#xff1a;&#xff08;一&#xff09; windows 操作系統下使用 eclipse 建立 maven web 項目》《j2ee 簡單網站搭建&#xff1a;&#xff08;二&#xff09;添加和配置 spring spring-mvc 的…