Apache Tika:通用的内容分析工具
項(xiàng)目介紹
Tika是一個(gè)內(nèi)容分析工具,自帶全面的parser工具類,能解析基本所有常見(jiàn)格式的文件,得到文件的metadata,content等內(nèi)容,返回格式化信息。總的來(lái)說(shuō)可以作為一個(gè)通用的解析工具。特別對(duì)于搜索引擎的數(shù)據(jù)抓去和處理步驟有重要意義。
Tika是一個(gè)目的明確,使用簡(jiǎn)單的apache的開(kāi)源項(xiàng)目。下圖是Tika誕生的一個(gè)歷史過(guò)程。
Tika項(xiàng)目之初來(lái)源于Nutch項(xiàng)目(大家應(yīng)該都不陌生),現(xiàn)在是Lucene的子項(xiàng)目,所以也是來(lái)源于搜索引擎。其實(shí)Nutch這個(gè)項(xiàng)目的開(kāi)發(fā)過(guò)程中,孕育了不少東西,應(yīng)該都?xì)w功于Doug Cutting。我個(gè)人也是覺(jué)得這件事情很贊,要搞Nutch這樣一個(gè)通用的搜索引擎,包括了全文索引和Web爬蟲(chóng)兩大塊內(nèi)容,在開(kāi)發(fā)過(guò)程中逐漸誕生出一些核心的周邊產(chǎn)品,再孕育成子項(xiàng)目,包括hadoop,Lucene,Tika等等這些現(xiàn)代很主流,使用人群很廣的通用項(xiàng)目,帶給了IT界不少便利。我個(gè)人對(duì)此非常憧憬,覺(jué)得甚是美好。
從源碼看功能
通過(guò)src里幾個(gè)包和主要類,看Tika能干什么。跳過(guò)core包,tika-parsers展示了Tika能處理的文件類別和內(nèi)容,
音頻,圖片,文本,各種格式的文件,tika都有對(duì)應(yīng)的parser類來(lái)處理。而且Tika提供給了一些parser接口供擴(kuò)展。tika-bundle提供Tika結(jié)合OSGi容器的能力。tika-app而則是一個(gè)在代碼外直接使用Tika的jar包,可以在官網(wǎng)直接下載使用,提供gui和cmd使用方式,直觀地體驗(yàn)這款產(chǎn)品。下面我會(huì)截圖展示。
Tika架構(gòu)
下圖解釋了Tika的架構(gòu)以及關(guān)鍵零部件的主要設(shè)計(jì)目標(biāo):由一個(gè)解析器框架(中間),MIME檢測(cè)機(jī)制(右側(cè)),語(yǔ)言檢測(cè)(左側(cè)),和一個(gè)facade組件(中間部分的原理圖)聯(lián)系所有組件。外部接口,包括命令行和圖形界面(下一節(jié)我會(huì)簡(jiǎn)單介紹),允許用戶集成到腳本或者應(yīng)用程序,并與Tika直接交互。在整個(gè)結(jié)構(gòu)中,Tika的體系結(jié)構(gòu)是可擴(kuò)展的,新的解析器可以輕松地添加和刪除。
Tika使用
直接使用Tika,只要java -jar tika-app-1.2 --gui即可啟動(dòng),你可以把打開(kāi)本地文件或者添加你要解析的url地址,甚至直接把各種文件拖入Tika,查看Tika的解析結(jié)果。大家可以直接下載jar包體驗(yàn)下,非常方便。在View內(nèi)可以選擇你想查看的內(nèi)容(Metadata, text等)。Tika對(duì)圖片的處理主要是提供一些元信息,并不能分析出圖片內(nèi)的內(nèi)容,所以圖片形式的pdf文件自然是不能查看text信息的。
如果是用命令行,類似的語(yǔ)法是這樣的:
[html]?view plaincopy
想在別的工程中使用Tika,只要在maven項(xiàng)目依賴?yán)锾砑覶ika,new Tika的實(shí)例,然后直接調(diào)用Tika的解析parser類,即可獲取到處理后的信息。給個(gè)最簡(jiǎn)單的例子:
[java]?view plaincopy
總結(jié)
介紹Tika出于兩個(gè)目的:
1. 感覺(jué)是一個(gè)通用,實(shí)用且易用的分析工具,可以與lucene,solr結(jié)合,天生服務(wù)搜索引擎
2. 感嘆Nutch項(xiàng)目發(fā)展歷史,Apache各種開(kāi)源項(xiàng)目的緊密,自然,優(yōu)美的關(guān)聯(lián)性。
更多內(nèi)容參看?《Tika in action》
原文出自:http://blog.csdn.net/pelick/article/details/8520352
總結(jié)
以上是生活随笔為你收集整理的Apache Tika:通用的内容分析工具的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 在windows系统中,什么不是文件的属
- 下一篇: pl/sql中文显示为乱码解决