全文检索(SOLR)前端应用浅析续 LWE-CORE分析
上一篇对Lucid的应用简要进行了介绍,现在对LWE-CORE分析一下
lucidworks enterprise可以免费使用,但不开源,了解一下这个的结构对于基于SOLR的应用有很大的帮助,lucidworks enterprise基于SOLR的应用叫LWE-CORE
上一篇 全文检索(SOLR)前端应用浅析 http://www.cnblogs.com/2018/archive/2011/07/29/2121519.html
启动、停止
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的服务,这个服务上提供:
Ø 基于SOLR规范本身的接口:如http://127.0.0.1:8888/solr/collection1/select/?q=NickChase, 这个接口在SOLR的文档有详细定义,在Lucid中Lucid query parser替换了原有的SOLR解析以体现更好的效果和应用
Ø SOLR的WEB界面: http://localhost:8888/solr/
Lucid封装增强的系列REST 服务API:如http://localhost:8888/api/collections/collection1/datasources , REST API最重要的作用是控制和监视数据源和索引
停止程序就是关闭Jetty
SOLR WEB程序分析
在安装目录的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\ luke.bat
对于已经索引的数据,可以使用这个工具查看索引的情况,包括各种信息,也是开源工具
总结
有了以上的信息,我们实现一个类似的方案如下:
1、 直接使用LWE-CORE,这样在这个服务上实现定制界面就是一个定制化的系统;或者直接使用这个方案,这样界面和服务都有[当然需要遵守这个软件的范围约束]
2、 参考上面的方法实现一个基于SOLR的新应用,毕竟很多的应用不用处理这么多的文件类型的索引