資料庫全文
在Microsoft SQL Server 7.0 中提供了全文索引服務(Full-Text Search Service),在查詢性能上,對varchar,char,text類型的欄位的匹配查詢比用SQL語句使用Like操作符及匹配符的速度快10倍以上;在查詢匹配上,提供了模糊匹配的高級搜索性能並能夠返回查詢的命中率。 Full Text Search Service包含在SQL Server 7.0中,在SQL Server 7 Destop版中不起作用。安裝SQL Server時,無法預設安裝它,需要在Custom Installation 中選擇。 服務安裝完後在SQL Server EntERPrise Manager中的Support Services中顯示為Full-text Search,在控制面版中的服務中顯示為Microsoft Search.可以在SQL Server EnterPrise Manager中啟動這個服務,就可以在表中加入全文索引了。要注意:只有有唯一索引欄的表才能建立全文索引,並且全文索引建立好之後就不能改變表了,如要改變表就必須得取出索引,然後再裝入。
對表設置全文索引應用如下步驟:
1.選擇要建立全文索引的表,然後選擇: Full-Text Index Table ->Define Full-Text Indexing on a table
2.系統會啟動SQL Server Full-Text Index 向導。
3.選擇一個唯一索引。
4.選擇一個要建立索引的欄位。
5.選擇catalog。
6.選擇更新索引計劃(由於全文索引和普通索引表不同,不能自動更新,所以得加入一個計劃
)。
7.Finish。
8.選擇在資料庫Full-text catalogs中里的新建立的catalog,然後運行Start Population,Full Population 就可以了。
② 如何用C#實現資料庫全文檢索
目前行業網站的全文檢索的方式主要有兩種
方式一:通過資料庫自帶的全文索引
方式二:通過程序來自建全文索引系統
以sql server 2005為例
2005本身就自帶全文索引功能,你可以先對資料庫表
建立索引,具體如何建索引網上搜索一下,建立完索引之後,你就可以用sql來實現檢索功能,例如:select * from ytbxw where
contaiins(欄位,' 中國');多個查詢值之間可以用and 或
or來實現,在單表以及單表視圖上建全文索引對2005來說根本不是問題,但在多表視圖建全文索引2005目前還無法實現這個功能,拿
www.ytbxw.com為例,其每個欄目的信息都是分開存放的,所以在檢索上就無法用該方法來解決這個問題.
下面重點說一下如何用程序來實現檢索功能
如果你想自己開發一個全文檢索系統,我想這是相當復雜事情,要想實現也不是那麼容易的事情,所以在這里我推薦一套開源程序,那就是dotlucene,我想大家可能都聽過這個東東吧,那我就講講如何來實現多表情況下的全文檢索.
1、新建winform項目,把lucene.net.dll添加到該項目中來
2、創建一個類,類名可以自己取
public class indexer
{
private indexwriter writer;
//在指定路徑下創建索引文件
public indexer(string directory)
{
writer = new indexwriter(directory, new standardanalyzer(), true);
writer.setusecompoundfile(true);
}
//將信息添加到索引文件中
/*
field.text:為索引+讀取
field.unindexed:不需要做索引
*/
public void addhtmldocument(string path,string title,string content)
{
document doc = new document();
doc.add(field.text("text", content));
doc.add(field.unindexed("path", path));
doc.add(field.text("title", title));
writer.adddocument(doc);
}
//解析html,過濾html代碼
private string parsehtml(string html)
{
string temp = regex.replace(html, "<[^>]*>", "");
return temp.replace(" ", " ");
}
//從頁面中獲取文章標題
private string gettitle(string html)
{
match m = regex.match(html, "<title>(.*)</title>");
if (m.groups.count == 2)
return m.groups[1].value;
return "(unknown)";
}
//添加新聞到索引
public void addnews()
{
//從資料庫獲取記錄(這部分略過)
for (int i = 1; i <= pagesize; i++)
{
rootid = int.parse(dr["classid"].tostring().substring(0, 2));
// 寫入索引
addhtmldocument(http://www.ytbxw.com + dr["id"].tostring() + ".html",
dr["title"].tostring(), parsehtml(dr["content"].tostring()));
}/info/
}
//關閉索引
public void close()
{
writer.optimize();
writer.close();
}
}
③ 引文資料庫和全文資料庫的區別是什麼
兩個的數據是不一樣的 。擺在首位的,便是觀眾對藝術的尊重程度,或是認識程度較低,對藝術與娛樂的概念,觀眾混為一談不作區分。在台灣或是西方發達國家,交響樂被視作神聖莊重的高雅藝術,觀眾大多是了解並真心熱愛交響樂之人。他們不覺得曲高和寡,願意用安靜聆聽的方式尊重音樂和音樂家們。然而大陸觀眾中,這樣的知音比重恐怕不會太大。敬酒也就是祝酒,是指在正式宴會上,由主人向來賓提議,提出某個事由而飲酒。一般情況下,敬酒應以年齡大小、職位高低、賓主身份為先後順序,一定要充分考慮好敬酒的順序,分明主次。
乾杯前,可以象徵性地和對方碰一下酒杯;碰杯的時候,應該讓自己的酒杯低於對方的酒杯,表示你對對方的尊敬。用酒杯杯底輕碰桌面,也可以表示和對方碰杯。當你離對方比較遠時,完全可以用這種方式代勞。如果主人親自敬酒乾杯後,要求回敬主人,和他再干一杯集體榮譽的背後,是三個人的共同參與,每個人都有一定的支配權,而分配結果要共同商議,才能不忘「集體」的初心。而在我教書生涯中,小雲同學不僅有創新的智慧,更有獎金分配面前的大器,所以我認同他的觀點——集體成功,榮譽共享。(再次強調觀點,回扣前文。)
可是智者產生並非一日之功,「讀萬卷書,行萬里路」,既要經得起實踐的磨練,又要博覽群書,深得中華文化之造詣,方可做到。作為平常之人,我們應不斷的加強修養,虛心請教,傾聽不同的聲音,在實踐中提升自己。只有這樣,我們才能在變化的世界中從容應付,成為勝者子曰:「三人行,必有我師焉。擇其善者而從之,擇其不善者而改之。」其實這中間的「三」字應該是個虛詞,「多」的意思。就是說幾個人一起走,這其中一定有我可以跟從的人,這樣就可以學習他們身上的優點,並及時改正自己身上的缺點。所以,當你一個人到達不了目的地時,團結他人是一個很好可團結的意識是怎麼來的呢?這就要靠平時的養成了。我們應該從小就培養自己的集體榮譽感,不應該認為這個班級比賽對自己無益就隨便玩玩,這樣你是不可能成功的。如果班裡的每個同學都能富有集體榮譽感,大家都團結互助,
④ oracle資料庫實現全文檢索
Oracle全文檢索配置方法:
1.檢查資料庫是否具有全文檢索功能(這是針對已經建成使用的資料庫)
查看用戶中是否存在ctxsys用戶,查詢角色里是否存在ctxapp角色。以上兩個中的1個不滿足(不存在),則說明沒有裝過全文檢索功能。
使用contains函數的時候,若沒有全文檢索則會報錯的。
2.若沒有,則需要手動建立,先建立全文檢索要使用的空間
sqlplus / as sysdba --進入控制台
createtablespaceIdx_ctxsysdatafile'/oradata/sg186fx/ctxsys01.;--創建全文檢索使用的表空間
3.創建全文檢索使用的用戶和角色及相應的包,則需要執行oracle自帶的一個腳本:cd $ORACLE_HOME/ctx/admin/catctx.sql
還是在sqlplus中執行:
@?/ctx/admin/catctx.sql ctxsys Idx_ctxsys temp nolock
在執行這個腳本的時候,輸入了幾個參數,第一個參數ctxsys為ctxsys用戶的密碼
第二個參數Idx_ctxsys為ctxsys用戶要使用的表空間
第三個參數temp為ctxsys用戶使用的臨時表空間
第四個參數nolock為ctxsys用戶處於解鎖狀態。
4.創建完成後,要登錄ctxsys用戶
connect ctxsys/ctxsys
執行以下腳本:@?/ctx/admin/defaults/drdefus.sql(這是個很重要的腳本,後面創建索引會使用該腳本創建的信息)
5.創建全文索引語法分析器
先要明確使用全文索引的用戶,我要使用全文索引的是sgpm用戶
因此
grantexecuteonctxsys.ctx_ddltosgpmwithgrantoption;
connect sgpm/sgpm
設置語法分析器:
execctx_ddl.drop_preference('chinalexer');
execctx_ddl.create_preference('chinalexer','chinese_lexer');
設置詞法屬性:
execctx_ddl.drop_preference('idx_c_store');
begin
ctx_ddl.create_preference('idx_c_store','BASIC_STORAGE');
ctx_ddl.set_attribut('idx_c_store','I_TABLE_CLAUSE','tablespacesIdx_ctxsy');
ctx_ddl.set_attribute('idx_c_store','I_INDEX_CLAUSE','tablespaceIdx_ctxsycompress2');
end;
/
6.創建索引
createindexsgpm.idx_c_cons_nameonsgpm.c_cons(cons_name)indextypeisctxsys.contextparameters('lexerchinalexerstorageidx_c_store');
7.同步索引
variablejobnonumber;
begin
dbms_job.submit(:jobno,'pkg_sp_tools.p_cont_sys_index();',sysdate,'trunc(sysdate)+19/24+1');--執行的是個性化方法。
end;
/
普通的就是用:
execctx_ddl.sync_index('idx_c_cons_name');
到此,全文檢索創建成功,contains函數就可以正常使用了。
注意:創建的過程中會出現ORA-29879:cannot create multiple domain index on a column listusing same indextype ,這說明在其他用戶下已經建立了該索引。
⑤ 全文資料庫的分類
常用的中文全文資料庫有:中國期刊全文資料庫、中文科技期刊資料庫、萬方系統的數字化期刊全文資料庫;常用英文全文數據 庫有OVID全文期刊庫、荷蘭的SDOS、美國UMI公司的ProQuest Medical Library等。
閱讀全文資料庫,計算機內必須安裝有全文瀏覽器。其通用的格式有PDF格式和HTML格式等,前者用Adobe Acrobat Reader閱讀,後者用IE等網路瀏覽器閱讀。
⑥ 全文資料庫的主要全文資料庫
中國期刊全文資料庫
世界上最大的連續動態更新的中國期刊全文資料庫,收錄國內 8200 多種重要期刊,以學術、技術、政策指導、高等科普及教育類為主,同時收錄部分基礎教育、大眾科普、大眾文化和文藝作品類刊物,內容覆蓋自然科學、工程技術、農業、哲學、醫學、人文社會科學等各個領域 ,全文文獻總量 2200 多萬篇。按學科分為168個專題,每日更新,年新增文獻100多萬篇。
中國期刊全文資料庫(世紀期刊)
收錄回溯1979年至1993年的4195種期刊,部分期刊回溯至創刊,最早回溯至1887年,按學科分為168個專題,現有文獻500多萬篇,每月更新。
中國博士學位論文全文資料庫
收錄1999年至今420個博碩士培養單位的學位論文,現有論文5萬多篇,每日更新。
中國優秀碩士學位論文全文資料庫
收錄1999年至今652個博碩士培養單位的學位論文,現有論文37萬多篇,每日更新。
中國重要報紙全文資料庫
收錄2000年至今700多種重要報紙,現有文章645萬多篇,每日更新,年新增文章120萬篇。
中國重要會議論文全文資料庫
收錄2000年至今1200多家學術團體的會議論文,現有論文近58萬篇,每日更新。
中國圖書全文資料庫
一期工程即將完成,首批3萬種新書已上網服務,每日更新,年新增圖書10萬本。 中國醫院知識倉庫
收錄1400多種醫學期刊,108家醫學博碩士培養單位學位論文,內容每日累增。
中小學多媒體數字圖書館
收錄500餘種教育類期刊,2000多種相關期刊,400餘種相關報紙,以及多媒體教育教學素材、高初中同步教學輔導、高考中考名師輔導等,內容每日累增。
中國企業知識倉庫
匯集企業所需期刊、優秀博碩士論文、重要會議論文、報紙全文、圖書全文、新書目等數據資源。 涵蓋企業所需各類信息資源、知識資源,利用現代信息技術進行加工整合,以最方便快捷的傳播手段,為企業提供可有效利用的資源。主要分鋼鐵冶金、鋁業、石油化工、石油天然氣勘探、電力、發電、電網、金融、保險、證券、基金等各個行業、企業知識庫,內容每日累增。 數值型知識元庫
包括從各類統計年鑒及各種專業文獻中抽取的統計數據和科學實驗數據。
理論與方法型知識元資料庫
包括從各種網路全書中抽取的專業術語解釋及從各種專業論文中抽取的觀點、理論、方法和技巧等知識元。
⑦ 目前全文的資料庫有哪些
1、超星電子圖書館:收錄的電子圖書內容豐富,包括經典理論、哲學、社科、經濟、語言文字、文學、數理化、生物、工業技術、計算機等50餘個學科門類,現擁有中文電子圖書80萬種,論文300萬篇,全文總量4億余業,並且每天仍在不斷地更新與增加。
2,書生之家數字圖書館:主要收錄1999年以後出版的新書,其收錄量為每年中國出版的新書品種一半以上,目前擁有圖書15萬種,數量可觀,學科門類齊全。
3,中國學術期刊全文資料庫:該庫的產品分為十大專輯:理工A、理工B、理工C、農業、醫葯衛生、文史哲、政治軍事與法律、教育與社會科學綜合、電子技術與信息科學、經濟與管理。個專輯分為若干專題,共168個專題。
4,維普中文科技期刊資料庫:按照《中國圖書館分類法》進行分類,所有文獻被分為8個專輯:社會科學、自然科學、工程技術、醫葯衛生、農業科學、經濟管理、教育科學和圖書情報。8大專輯又被細分為36個專題。
5,萬方數字化期刊收藏資源的特點:目前集納了理、工、農、醫、人文五大類70多個類目,2500多種科技類核心期刊,實現全文上網。該系統收錄的期刊種類主要有7個:基礎科學、農業科學、社會科學、哲學政法、醫學衛生、教科文藝、經濟財政。
(7)資料庫全文擴展閱讀:
資料庫主要特點:
(1)實現數據共享:
數據共享包含所有用戶可同時存取資料庫中的數據,也包括用戶可以用各種方式通過介面使用資料庫,並提供數據共享。
(2)減少數據的冗餘度:
同文件系統相比,由於資料庫實現了數據共享,從而避免了用戶各自建立應用文件。減少了大量重復數據,減少了數據冗餘,維護了數據的一致性。
(3)數據的獨立性:
數據的獨立性包括邏輯獨立性(資料庫中資料庫的 邏輯結構和 應用程序相互獨立)和物理獨立性(數據物理結構的變化不影響數據的邏輯結構)。
(4)數據實現集中控制:
文件管理方式中,數據處於一種分散的狀態,不同的用戶或同一用戶在不同處理中其文件之間毫無關系。利用資料庫可對數據進行集中控制和管理,並通過 數據模型表示各種數據的組織以及數據間的聯系。
⑧ 什麼是全文資料庫(full-text database)
一般用在文件檢索方面,所謂全文是與一般的資料庫比較而言的。一般的資料庫中存儲的只是某個文件的關鍵字,查找時也只能按照關鍵字去查找,而對於全文資料庫,其中包含的是整個文章的內容。因此,在查詢時,一般採用的是模糊查詢。這樣可以更多的涉及到文章的內容。