導航:首頁 > 編程語言 > java全文搜索

java全文搜索

發布時間:2025-08-29 15:20:14

A. 怎麼用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的大體用法,不知道是不是說的很清楚。

B. 開源搜索的20款開源搜索引擎系統

一些開源搜索引擎系統介紹,包含開源Web搜索引擎和開源桌面搜索引擎。
Sphider
Sphider是一個輕量級,採用PHP開發的web spider和搜索引擎,使用mysql來存儲數據。可以利用它來為自己的網站添加搜索功能。Sphider非常小,易於安裝和修改,已經有數千網站在使用它。
RiSearch PHP
RiSearch PHP是一個高效,功能強大的搜索引擎,特別適用於中小型網站。RiSearch PHP非常快,它能夠在不到1秒鍾內搜索5000-10000個頁面。RiSearch是一個索引搜索引擎,這就意味著它先將你的網站做索引並建立一個資料庫來存儲你網站所有頁面的關鍵詞以便快速搜索。Risearch是全文搜索引擎腳本,它把所有的關鍵詞都編成一個文檔索引除了配置文件裡面的定義排除的關鍵詞。 RiSearch使用經典的反向索引演算法(與大型的搜索引擎相同),這就是為什麼它會比其它搜索引擎快的原因。
PhpDig
PhpDig是一個採用PHP開發的Web爬蟲和搜索引擎。通過對動態和靜態頁面進行索引建立一個詞彙表。當搜索查詢時,它將按一定的排序規則顯示包含關鍵字的搜索結果頁面。PhpDig包含一個模板系統並能夠索引PDF,Word,Excel,和PowerPoint文檔。PHPdig適用於專業化更強、層次更深的個性化搜索引擎,利用它打造針對某一領域的垂直搜索引擎是最好的選擇。
OpenWebSpider
OpenWebSpider是一個開源多線程Web Spider(robot:機器人,crawler:爬蟲)和包含許多有趣功能的搜索引擎。
Egothor
Egothor是一個用Java編寫的開源而高效的全文本搜索引擎。藉助Java的跨平台特性,Egothor能應用於任何環境的應用,既可配置為單獨的搜索引擎,又能用於你的應用作為全文檢索之用。
Nutch
Nutch 是一個開源Java 實現的搜索引擎。它提供了我們運行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬蟲。
Lucene
Apache Lucene是一個基於Java全文搜索引擎,利用它可以輕易地為Java軟體加入全文搜尋功能。Lucene的最主要工作是替文件的每一個字作索引,索引讓搜尋的效率比傳統的逐字比較大大提高,Lucen提供一組解讀,過濾,分析文件,編排和使用索引的API,它的強大之處除了高效和簡單外,是最重要的是使使用者可以隨時應自己需要自訂其功能。
Oxyus
是一個純java寫的web搜索引擎。
BDDBot
BDDBot是一個簡單的易於理解和使用的搜索引擎。它目前在一個文本文件(urls.txt)列出的URL中爬行,將結果保存在一個資料庫中。它也支持一個簡單的Web伺服器,這個伺服器接受來自瀏覽器的查詢並返回響應結果。它可以方便地集成到你的Web站點中。
Zilverline
Zilverline是一個搜索引擎,它通過web方式搜索本地硬碟或intranet上的內容。Zilverline可以從PDF, Word, Excel, Powerpoint, RTF, txt, java, CHM,zip, rar等文檔中抓取它們的內容來建立摘要和索引。從本地硬碟或intranet中查找到的結果可重新再進行檢索。Zilverline支持多種語言其中包括中文。
XQEngine
XQEngine用於XML文檔的全文本搜索引擎。利用XQuery做為它的前端查詢語言。它能夠讓你查詢XML文檔集合通過使用關鍵字的邏輯組合。有點類似於Google與其它搜索引擎搜索HTML文檔一樣。XQEngine只是一個用Java開發的很緊湊的可嵌入的組件。
MG4J
MG4J可以讓你為大量的文檔集合構建一個被壓縮的全文本索引,通過使內插編碼(interpolative coding)技術。
JXTA Search
JXTA Search是一個分布式的搜索系統。設計用在點對點的網路與網站上。
YaCy
YaCy基於p2p的分布式Web搜索引擎。同時也是一個Http緩存代理伺服器。這個項目是構建基於p2p Web索引網路的一個新方法。它可以搜索你自己的或全局的索引,也可以Crawl自己的網頁或啟動分布式Crawling等。
Red-Piranha
Red-Piranha是一個開源搜索系統,它能夠真正」學習」你所要查找的是什麼。Red-Piranha可作為你桌面系統(Windows,Linux與Mac)的個人搜索引擎,或企業內部網搜索引擎,或為你的網站提供搜索功能,或作為一個P2P搜索引擎,或與wiki結合作為一個知識/文檔管理解決方案,或搜索你要的RSS聚合信息,或搜索你公司的系統(包括SAP,Oracle或其它任何Database/Data source),或用於管理PDF,Word和其它文檔,或作為一個提供搜索信息的WebService或為你的應用程序(Web,Swing,SWT,Flash,Mozilla-XUL,PHP, Perl或c#/.Net)提供搜索後台等等。
LIUS
LIUS是一個基於Jakarta Lucene項目的索引框架。LIUS為Lucene添加了對許多文件格式的進行索引功能如:Ms Word,Ms Excel,Ms PowerPoint,RTF,PDF,XML,HTML,TXT,Open Office序列和JavaBeans.針對JavaBeans的索引特別有用當我們要對資料庫進行索引或剛好用戶使用持久層ORM技術如:Hibernate,JDO,Torque,TopLink進行開發時。
Apache Solr
Solr是一個高性能,採用Java5開發,基於Lucene的全文搜索伺服器。文檔通過Http利用XML加到一個搜索集合中。查詢該集合也是通過 http收到一個XML/JSON響應來實現。它的主要特性包括:高效、靈活的緩存功能,垂直搜索功能,高亮顯示搜索結果,通過索引復制來提高可用性,提供一套強大Data Schema來定義欄位,類型和設置文本分析,提供基於Web的管理界面等。
Paoding
Paoding中文分詞是一個使用Java開發的,可結合到Lucene應用中的,為互聯網、企業內部網使用的中文搜索引擎分片語件。 Paoding填補了國內中文分詞方面開源組件的空白,致力於此並希翼成為互聯網網站首選的中文分詞開源組件。 Paoding中文分詞追求分詞的高效率和用戶良好體驗。
Carrot2
Carrot2是一個開源搜索結果分類引擎。它能夠自動把搜索結果組織成一些專題分類。Carrot2提供的一個架構能夠從各種搜索引擎(YahooAPI、GoogleAPI、MSN Search API、eTools Meta Search、Alexa Web Search、PubMed、OpenSearch、Lucene index、SOLR)獲取搜索結果。
Regain
regain是一款與Web搜索引擎類似的桌面搜索引擎系統,其不同之處在於regain不是對Internet內容的搜索,而是針對自己的文檔或文件的搜索,使用regain可以輕松地在幾秒內完成大量數據(許多個G)的搜索。Regain採用了Lucene的搜索語法,因此支持多種查詢方式,支持多索引的搜索及基於文件類型的高級搜索,並且能實現URL重寫及文件到HTTP的橋接,並且對中文也提供了較好的支持。
Regain提供了兩種版本:桌面搜索及伺服器搜索。桌面搜索提供了對普通桌面計算機的文檔與區域網環境下的網頁的快速搜索。伺服器版本主要安裝在Web伺服器上,為網站及區域網環境下的文件伺服器進行搜索。

閱讀全文

與java全文搜索相關的資料

熱點內容
java中map的key可以有哪些類型 瀏覽:812
曲線數據選擇如何選兩組不同數據 瀏覽:102
jsp對文件重命名 瀏覽:171
excel如何判斷指定文件夾 瀏覽:740
為什麼app更新了完了總是閃退 瀏覽:661
三星note5軟體備份工具 瀏覽:593
ns硬破大氣層游戲放哪個文件夾 瀏覽:926
java全文搜索 瀏覽:898
如何保證資料庫數據的安全性 瀏覽:739
資料庫中寬度怎麼設置 瀏覽:858
ksjy文件怎麼打開 瀏覽:426
如何用手機app找客戶 瀏覽:113
軟體製作用什麼編程 瀏覽:900
html代碼手冊 瀏覽:699
為什麼轉換器無法打開excel文件 瀏覽:446
cad怎麼找回未自動保存的文件 瀏覽:588
ios怎麼關閉指紋支付密碼錯誤 瀏覽:161
兒童編程培訓班哪個 瀏覽:279
htmlform文件上傳 瀏覽:233
mac路徑打開文件夾 瀏覽:234

友情鏈接