全文檢索資料庫
❶ 我想查中文文獻,請問常用資料庫有哪些
國內3大中文文獻資料庫系統:中國知網、萬方、中國期刊網。
萬方數據資源系統(China Info)由中國科技信息研究所,萬方數據股份有限公司研製。該資料庫收錄的期刊學科範圍廣,包括了學術期刊於非學術期刊,提供約2 000種的電子期刊的全文檢索。
被收錄的學術期刊都獲得了「中國核心期刊(遴選)資料庫來源期刊」的收錄證書。個別期刊甚至將「遴選」改成「精選」,或者乾脆去掉。很多作者因此誤以為這就是核心期刊。
中國知網收錄1994年以來國內6 600種期刊,包括了學術期刊於非學術期刊,涵蓋理工、農業、醫葯衛生、文史哲、政治軍事與法律、教育與社會科學綜合、電子技術與信息科學、經濟與管理。
收錄的學術期刊同時作為「中國學術期刊綜合評價資料庫統計源期刊」。但是收錄的期刊不很全面,一些重要期刊未能收錄。
(1)全文檢索資料庫擴展閱讀:
多次引用的文獻,每處的頁碼或頁碼范圍(有的刊物也將能指示引用文獻位置的信息視為頁碼)分別列於每處參考文獻的序號標注處,置於方括弧後(僅列數字,不加「p」或「頁」等前後文字、字元)並作上標。
所列參考文獻的要求是:
1、所列參考文獻應是正式出版物,以便讀者考證。
2、所列舉的參考文獻要標明序號、著作或文章的標題、作者、出版物信息。
❷ 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 ,這說明在其他用戶下已經建立了該索引。
❸ sqlite中資料庫中索引與全文檢索的區別
SQLite 索引(Index)是一種特殊的查找表,資料庫搜索引擎用來加快數據檢索。簡單地說,索引是一個指向表中數據的指針。一個資料庫中的索引與一本書後邊的索引是非常相似的。
例如,如果您想在一本討論某個話題的書中引用所有頁面,您首先需要指向索引,索引按字母順序列出了所有主題,然後指向一個或多個特定的頁碼。 下面是一個sqlite上建立索引的例子
CREATE INDEX index_name ON table_name;
sqlite中支持fts表(full-text search的簡稱),fts3其實是sqlite的一個擴展模塊,是虛擬表模塊,允許用戶去實現全文檢索。下面是一個簡單的例子:
java代碼
CREATE VIRTUAL TABLE enrondata1 USING fts3(content TEXT);
可以看到,使用上面的語法即創建了一個fts3的表了,而檢索時,根據手冊上說的:
SELECT count(*) FROM enrondata1 WHERE content MATCH 'linux'; /* 0.03 seconds */
SELECT count(*) FROM enrondata2 WHERE content LIKE '%linux%'; /* 22.5 seconds */
看到沒?這里是使用match了,而不是傳統的like,而且效率很高了。
還支持如下的語法:
SELECT * FROM words_fts WHERE words_fts MATCH 'description: company';
即列名:該列要搜索的關鍵詞
還可以這樣:
SELECT * FROM words_fts WHERE words_fts MATCH 'description: comp*'
即支持通配符了
索引主要是針對表中的一列或者是多列建立的升序或者是降序的排列。全文索引是索引的升級,他是針對整個文件的字元匹配。而且建立和全文索引以後就可以對創建了該索引的表進行全文檢索.
❹ 如何用java的lucene對資料庫進行全文檢索
lucene是一個公用的全文索引組件,它的目標是把各種各樣格式的數據轉化成lucene特有的索引文件格式,這樣才能通過lucene的高速檢索機制進行全文檢索。
你的數據來源可以是關系資料庫,可以是word、execl、txt文檔,可以是html網頁,對於這些數據源,你必須將它們內部的數據讀取出來,並封裝成lucene的document實例,之後讓lucene幫你構建索引。
舉個例子:你的有一個用戶資料庫,裡面存儲了幾十萬的用戶信息,你現在要對這個資料庫進行全文索引,那麼你要做的事情是:
1.寫一段傳統的JDBC程序,講每條的用戶信息從資料庫讀取出來
2.針對每條用戶記錄,建立一個lucene document
Document doc = new Document();
並根據你的需要,將用戶信息的各個欄位對應luncene document中的field 進行添加,如:
doc.add(new Field("NAME","USERNAME", Field.Store.YES,Field.Index.UN_TOKENIZED));
然後將該條doc加入到索引中, 如: luceneWriter.addDocument(doc);
這樣就建立了lucene的索引庫
3.編寫對索引庫的搜索程序(看lucene文檔),通過對lucene的索引庫的查找,你可以快速找到對應記錄的ID
4.通過ID到資料庫中查找相關記錄
上面闡述了lucene的大體用法,不知道是不是說的很清楚。
❺ 常用的中文文獻檢索資料庫有哪些
1、中國知網:
知網,是國家知識基礎設施的概念,由世界銀行於1998年提出。CNKI工程是以實現全社會知識資源傳播共享與增值利用為目標的信息化建設項目。由清華大學、清華同方發起,始建於1999年6月。
憑借優質的內容資源、領先的技術和專業的服務,中國知網在業界享有極高的聲譽,在2007年,中國知網旗下的《中國學術期刊網路出版總庫》獲首屆「中國出版政府獎」,《中國博士學位論文全文資料庫》、《中國年鑒網路出版總庫》獲提名獎。
2、萬方:
萬方資料庫是由萬方數據公司開發的,涵蓋期刊、會議紀要、論文、學術成果、學術會議論文的大型網路資料庫;也是和中國知網齊名的中國專業的學術資料庫。
其開發公司——萬方數據股份有限公司是國內第一家以信息服務為核心的股份制高新技術企業,是在互聯網領域,集信息資源產品、信息增值服務和信息處理方案為一體的綜合信息服務商。
3、中國年鑒網路出版總庫
中國年鑒網路出版總庫是目前國內最大的連續更新的動態年鑒資源全文資料庫。內容覆蓋基本國情、地理歷史、政治軍事外交、法律、經濟、科學技術、教育、文化體育事業、醫療衛生、社會生活、人物、統計資料、文件標准與法律法規等各個領域。
4、中國引文資料庫
該庫收錄了中國學術期刊(光碟版)電子雜志社出版的所有源資料庫產品的參考文獻,涉及期刊類型、學位論文類型、會議論文類型、圖書類型、專利類型、標准類型、報紙類型等超千萬次被引文獻。
該庫通過揭示各種類型文獻之間的相互引證關系,不僅可以為科學研究提供新的交流模式,同時也可以作為一種有效的科學管理及評價工具。
5、維普資料庫系統
維普資訊網建成於2000年,現已成為全球著名的中文信息服務網站,是Google Scholar最大的中文內容合作網站,中國最大的數字期刊資料庫,目前擁有2000餘家集團用戶,網站注冊用戶數超過200餘萬。
網站內容服務包括9000餘種/2000萬篇中文期刊全文;30餘個國家/11300餘種/800餘萬條外文期刊文獻;400多種重要中文報紙信息,學科覆蓋理、工、農、醫、文、史、哲、法各個領域,並提供網上每日更新。
❻ 在資料庫中使用全文索引的好外與壞處
好處上面已經說了。最大的優點其實就是檢索速度快,對伺服器的負荷降低
缺點,如果說有的話,就是需要進行填充
上一次填充後,你增加的內容,直到你再次增量填充,否則是檢索不到的。
你可以根據自己更新內容的頻率設置調度來自動執行。
❼ 和SQL資料庫里的查詢/全文檢索有什麼區別
這個問題很難回答,es也可以理解成是一種資料庫,不僅能提供全文檢索功能,還可以支持各種數值類的區間查詢,聚合計算等,這些和傳統資料庫一樣,從使用場景來說,資料庫一般用來存meta,比如網站用戶,用戶資源等等,這些數據有個特點就是量不會很大,還有就是這些數據一般都比較結構化。
es一般用來存一些流式數據,比如應用日誌,這也是目前es應用最廣的方面,這些數據有個特點就是往往結構不固定,比如應用日誌,不同的程序員寫得模塊打出來的日誌欄位數量都不一樣,這種數據就不太方便用資料庫來處理。
最後,一般傳統資料庫,全文檢索都實現的很雞肋,因為一般也沒人用資料庫存文本欄位。
上面從使用場景上說明了兩者的區別,從技術上兩者全文檢索的實現都差不多,無非是倒排索引,但是lucene畢竟是專業的,做了十幾年了,索引效率,存儲空間等都比傳統資料庫快很多,技術也迭代的非常快。
以上就是我總結的不同之處,希望能解答樓主的疑惑。
作者:Razzit
鏈接:https://www.hu.com/question/53063256/answer/151074607
來源:知乎
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請註明出處。
❽ 以下哪些資料庫是全文檢索資料庫
#一個完整的演示
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
from whoosh.index import create_in
from whoosh.fields import *
from whoosh.analysis import RegexAnalyzer
analyzer = RegexAnalyzer(ur」([\u4e00-\u9fa5])|(\w+(\.?\w+)*)」)
schema = Schema(title=TEXT(stored=True), path=ID(stored=True), content=TEXT(stored=True, analyzer=analyzer))
ix = create_in(「indexdir」, schema)
writer = ix.writer()
writer.add_document(title=u」First document」, path=u」/a」,
content=u」This is the first document we』ve added!」)
writer.add_document(title=u」Second document」, path=u」/b」,
content=u」The second one 你 中文測試中文 is even more interesting!」)
writer.commit()
searcher = ix.searcher()
results = searcher.find(「content」, u」first」)
print results[0]
results = searcher.find(「content」, u」你」)
print results[0]
results = searcher.find(「content」, u」測試」)
print results[0]