欢迎来到天天文库
浏览记录
ID:14209329
大小:64.00 KB
页数:31页
时间:2018-07-26
《lucene 全文检索实践》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Lucene全文检索实践Lucene全文检索实践(1)Lucene是ApacheJakarta的一个子项目,是一个全文检索的搜索引擎库。其提供了简单实用的API,通过这些API,可以自行编写对文件(TEXT/XML/HTML等)、目录、数据库的全文检索程序。Features:*Veryfastindexing,minimalRAMrequired*Indexcompressionto30%oforiginaltext*IndexestextandHTML,documentclassesavailableforXML
2、,PDFandRTF*SearchsupportsphraseandBooleanqueries,plus,minusandquotemarks,andparentheses*Allowssingleandmultiplecharacterwildcardsanywhereinthesearchwords,fuzzysearch,proximity*Willsearchforpunctuationsuchas+or?*Fieldsearchesfortitle,author,etc.,anddate-rangese
3、arching*SupportsmostEuropeanlanguages*Optiontostoreanddisplayfulltextofindexeddocuments*Searchresultsinrelevanceorder*APIsforfileformatconversion,languagesanduserinterfaces实践任务:1)编写Java程序MyIndexer.java,使用JDBC取出MySQL数据表内容(以某一论坛数据做测试),然后通过org.apache.lucene.index
4、.IndexWriter创建索引。2)编写Java程序MySearcher.java,通过org.apache.lucene.search.IndexSearcher等查询索引。3)实现支持中文查询及检索关键字高亮显示。4)通过PHP/JavaIntegration实现对MySearch.java的调用。5)实现对PHP手册(简体中文)的全文检索。Lucene全文检索实践(2)Java的程序基本编写完成,实现了对中文的支持。下一步是将其放到WEB上运行,首先想到的是使用JSP,安装了ApacheTomcat/4.1
5、.24,默认的发布端口是8080。现在面临的一个问题是:Apachehttpd的端口是80,并且我的机器对外只能通过80端口进行访问,如果将Tomcat的发布端口改成80的话,httpd就没法对外了,而其上的PHP程序也将无法在80端口运行。对于这个问题,我想到两种方案:1、使用PHP直接调用Java。需要做的工作是使用--with-java重新编译PHP;2、使用mod_jk做桥接的方式,将servlet引擎结合到httpd中。需要做的工作是编译jakarta-tomcat-connectors-jk-1.2.5
6、-src,生成mod_jk.so给httpd使用,然后按照Howto文档进行Tomcat、httpd的配置。对于第一个方案的尝试:使用PHP直接调用Java环境*PHP4.3.6prefix=/usr*Apache1.3.27prefix=/usr/local/apache*j2sdk1.4.1_01prefix=/usr/local/jdk配置步骤1)安装JDK,这个就不多说了,到GOOGLE可以搜索出这方面的大量文章。2)重新编译PHP,我的PHP版本是4.3.6:cdphp-4.3.6./configure-
7、-with-java=/usr/local/jdkmakemakeinstall完成之后,会在PHP的lib下(我的是在/usr/lib/php)有个php_java.jar,同时在扩展动态库存放的目录下(我的是在/usr/lib/php/20020429)有个java.so文件。到这一步需要注意一个问题,有些PHP版本生成的是libphp_java.so文件,extension的加载只认libphp_java.so,直接加载java.so可能会出现如下错误:PHPFatalerror:UnabletoloadJa
8、vaLibrary/usr/local/jdk/jre/lib/i386/libjava.so,error:libjvm.so:cannotopensharedobjectfile:Nosuchfileordirectoryin/home/nio/public_html/java.phponline2所以如果生成的是java.so,需要创建一个符号连接:ln
此文档下载收益归作者所有