php中调用lucene实现网站的全文检索

公司网站要实现全文检索,目前php中有sphnix和zendframework中的lucene可以实现全文检索。经过实践发现sphnix不够稳定,而zf中的lucene基本上只算是个玩具,没法在实践中使用。经过实验,发现可以用lucene(java)实现全文检索功能,然后在php中调用。

一、java lucene实现全文检索
1、下载lucene
http://dev.xiaonei.com/apache-mirror/lucene/java/
2、下载完成后,搭建java环境,具体请google相关文章。
3、按照lucene文档,将数据库中的数据转换为lucene本地索引(具体过程会单写一篇文章)
4、建立SearchEnginne文件,search(String keyword)方法实现实现全文检索(全文检索里很重要的一个问题是中文分词,可以使用lucene默认的分词方式,也可以自己实现)
5、最后将项目export成一个jar文件(lucene.jar)
二、php调用lucene.jar(目前只实现了windows平台下的调用,linux平台下的调用等实践完成后再附上)
 最后就剩下php调用了。要在php中调用java,需要借用转换工具php-java-bridge
1、下载php-java-bridge(http://php-java-bridge.sourceforge.net/pjb/)
2、解压缩php-java-bridge后进入php-java-bridge,再解压缩javabridge.war到javabridge.
3、在apache的web目录下新建一个目录websearch,复制php-java-bridge/javabridge下的java及WEB-INF目录到websearch
4、复制前面生成的lucene.jar到websearch
5、新建lucene.php
   <?php
      require_once("java/java.inc");
      java_require("$webroot/websearch/lucene.jar");

      auto_load();

      $keyvalue = $_GET["key"];   //搜索关键字
      if($keyvalue == "")
      {
         exit();
      }

       $search = new Java("SearchEnginne");                   //创建全文检索对象
       $result = java_values($search->search("$keyvalue"));   //得到全文检索结果

   ?>
6、运行websearch/WEB-INF/lib/javabridge.jar,选择localhost:8080点击确定
7、运行lucene.php,即可看到全文检索的结果

以上是个人体会,如有不妥,希望高手交流指正

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值