国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

在應用中加入全文檢索功能——基于Java的全文索引引擎Lucene簡介

2019-11-18 13:35:08
字體:
來源:轉載
供稿:網友

內容摘要:

LUCene是一個基于java的全文索引工具包。

基于Java的全文索引引擎Lucene簡介:關于作者和Lucene的歷史
全文檢索的實現:Luene全文索引和數據庫索引的比較
中文切分詞機制簡介:基于詞庫和自動切分詞算法的比較
具體的安裝和使用簡介:系統結構介紹和演示
Hacking Lucene:簡化的查詢分析器,刪除的實現,定制的排序,應用接口的擴展
從Lucene我們還可以學到什么
基于Java的全文索引/檢索引擎——Lucene

Lucene不是一個完整的全文索引應用,而是是一個用Java寫的全文索引引擎工具包,它可以方便的嵌入到各種應用中實現針對應用的全文索引/檢索功能。

Lucene 的作者:Lucene的貢獻者DougCutting是一位資深全文索引/檢索專家,曾經是V-Twin搜索引擎(Apple的Copland操作系統的成就之一)的主要開發者,后在Excite擔任高級系統架構設計師,目前從事于一些INTERNET底層架構的研究。他貢獻出的Lucene的目標是為各種中小型應用程序加入全文檢索功能。

Lucene的發展歷程:早先發布在作者自己的www.lucene.com,后來發布在SourceForge,2001年年底成為APACHE基金會jakarta的一個子項目:http://jakarta.apache.org/lucene/

已經有很多Java項目都使用了Lucene作為其后臺的全文索引引擎,比較聞名的有:

Jive:WEB論壇系統;
Eyebrows:郵件列表Html歸檔/瀏覽/查詢系統,本文的主要參考文檔“TheLucene search engine: Powerful, flexible, and free”作者就是EyeBrows系統的主要開發者之一,而EyeBrows已經成為目前APACHE項目的主要郵件列表歸檔系統。
Cocoon:基于xml的web發布框架,全文檢索部分使用了Lucene
Eclipse:基于Java的開放開發平臺,幫助部分的全文索引使用了Lucene

對于中文用戶來說,最關心的問題是其是否支持中文的全文檢索。但通過后面對于Lucene的結構的介紹,你會了解到由于Lucene良好架構設計,對中文的支持只需對其語言詞法分析接口進行擴展就能實現對中文檢索的支持。

全文檢索的實現機制

Lucene的API接口設計的比較通用,輸入輸出結構都很像數據庫的表==>記錄==>字段,所以很多傳統的應用的文件、數據庫等都可以比較方便的映射到Lucene的存儲結構/接口中。總體上看:可以先把Lucene當成一個支持全文索引的數據庫系統。

比較一下Lucene和數據庫:

Lucene 數據庫
索引數據源:doc(field1,field2...) doc(field1,field2...) / indexer / _____________ Lucene Index -------------- / searcher / 結果輸出:Hits(doc(field1,field2) doc(field1...))
索引數據源:record(field1,field2...) record(field1..) / SQL: insert/ _____________ DB Index ------------- / SQL: select /結果輸出:results(record(field1,field2..) record(field1...))

Document:一個需要進行索引的“單元”
一個Document由多個字段組成 Record:記錄,包含多個字段
Field:字段 Field:字段
Hits:查詢結果集,由匹配的Document組成 RecordSet:查詢結果集,由多個Record組成

全文檢索 ≠ like "%keyWord%"

通常比較厚的書籍后面經常附要害詞索引表(比如:北京:12, 34頁,上海:3,77頁……),它能夠幫助讀者比較快地找到相關內容的頁碼。而數據庫索引能夠大大提高查詢的速度原理也是一樣,想像一下通過書后面的索引查找的速度要比一頁一頁地翻內容高多少倍……而索引之所以效率高,另外一個原因是它是排好序的。對于檢索系統來說核心是一個排序問題。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 三都| 南宫市| 公安县| 故城县| 绥阳县| 唐山市| 富源县| 左云县| 阳江市| 淮阳县| 克东县| 延安市| 奉贤区| 阿拉善左旗| 静安区| 上饶市| 湖南省| 乌海市| 泾阳县| 嘉鱼县| 汤阴县| 开化县| 闻喜县| 文山县| 界首市| 于田县| 高唐县| 通渭县| 诏安县| 扎囊县| 曲阳县| 临猗县| 馆陶县| 巧家县| 老河口市| 南丰县| 宣武区| 永修县| 静海县| 宁陵县| 池州市|