天天看點

全文檢索(SOLR)前端應用淺析續 LWE-CORE分析

上一篇對Lucid的應用簡要進行了介紹,現在對LWE-CORE分析一下

lucidworks enterprise可以免費使用,但不開源,了解一下這個的結構對于基于SOLR的應用有很大的幫助,lucidworks enterprise基于SOLR的應用叫LWE-CORE

start.bat中的

start "LucidWorks LWE-Core" /B "%JVM%" %JAVA_OPTS% %APP_OPTS% %JAVA_MEMORY_OPTS% %JETTY_OPTS% %MISC_OPTS% %MISC_OPTS2% -Djetty.home=jetty -jar jetty/start.jar 1>>

./logs/core-stdout.log 2>>./logs/core-stderr.log

這個是使用Jetty啟動Web程式,預設在8888端口提供SOLR的服務,這個服務上提供:

停止程式就是關閉Jetty

在安裝目錄的lwe-core下:

lwe-core\doc:是Lucid的文檔内容

lwe-core\solr:是SOLR自帶的JSP程式,可以在Web界面使用

lwe-core\WEB-INF\: 網站需要的基礎檔案,其中lib\lucidworks-1.8-1127.jar 實作了擴充,包括RestAPI

        web.xml中通過com.lucid.servlet.LWEServletModule實作了REST[google-guice:Google公司的Bob lee開發的輕量級IoC容器]

具體關聯的SOLR索引設定和資料

solr\cores\collection** 是對應的不同資料的索引和設定區

conf: solrconfig.xml schema.xml fieldtypes.xml等是SOLR使用的配置檔案,具體的文法和SOLR的一緻

data: 具體的資料源的索引區域

lwe-core\WEB-INF\lib下其他主要的關聯檔案:

中繼資料抽取

aperture-core aperture-tools-demork

http://aperture.sourceforge.net/ Aperture is a Java framework for extracting and querying full-text content and metadata from various information systems (e.g. file systems, web sites, mail boxes) and the file formats (e.g. documents, images) occurring in these systems.

多種資料格式文字擷取tika

Tika是一個内容抽取的工具集合(a toolkit for text extracting)。它內建了POI, Pdfbox 并且為文本抽取工作提供了一個統一的界面。

PDF - 通過Pdfbox

MS-* - 通過POI

HTML - 使用nekohtml将不規範的html整理成為xhtml

OpenOffice 格式 - Tika提供

Archive - zip, tar, gzip, bzip等

RTF - Tika提供

Java class - Class解析由ASM完成

Image - 隻支援圖像的中繼資料抽取

XML

涉及不同格式的處理包:

pdfbox-1.1.0 fontbox-1.1.0

poi-3.7-20100617171931

poi-ooxml-3.7-20100617171931 poi-ooxml-schemas-3.7-20100617171931 poi-scratchpad-3.7-20100617171931

htmlparser-1.6.bundle.jar

metadata-extractor-2.4.0-beta1.bundle

判斷文本檔案編碼的有用工具

juniversalchardet

quartz-1.8.4

Quartz 是個開放源碼項目,提供了豐富的作業排程集。

Luke\ luke.bat

對于已經索引的資料,可以使用這個工具檢視索引的情況,包括各種資訊,也是開源工具

有了以上的資訊,我們實作一個類似的方案如下:

1、 直接使用LWE-CORE,這樣在這個服務上實作定制界面就是一個定制化的系統;或者直接使用這個方案,這樣界面和服務都有[當然需要遵守這個軟體的範圍限制]

2、 參考上面的方法實作一個基于SOLR的新應用,畢竟很多的應用不用處理這麼多的檔案類型的索引