仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1160|回复: 19
打印 上一主题 下一主题

[学习教程] PHP教程之用PHP挪用Lucene包来完成全文检索

[复制链接]
分手快乐 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-4 00:10:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
兴趣可能会慢慢消亡,所以适当培养兴趣会激发自己无线的乐趣,有了乐趣,编程有啥难的。全文检索   因为任务需求,需求利用PHP完成对网站内大批数目停止全文检索,
并且今朝最盛行的全文检索的搜刮引擎库就是Lucene了,
它是Apache Jakarta的一个子项目,而且供应了复杂适用的API,
用这些API,就能够对任何根基文本的数据(包含数据库)停止全文检索。
由于PHP自己就撑持挪用内部Java类,所以先用Java写了一个类,
这个类经由过程挪用Lucene的API,完成了两个办法:
public String createIndex(String indexDir_path,String dataDir_path)
public String searchword(String ss,String index_path)
个中createIndex是创立索引办法,
传入了两个参数分离是indexDir_path(索引文件的目次),dataDir_path(被索引的文件目次),前往被索引的文件列表字符串,
另外一个是searchword,经由过程传入的关头字参数(ss)对索引停止检索,index_path就是索引文件的目次。前往一切检索到的文件。
这里是源代码,很复杂,人人可以参考一下:TxtFileIndexer.java
而PHP法式就挪用这两个办法,完成对Lucene的挪用,从而到达全文检索的目标。
PHP的挪用办法以下:
先创立一个咱们写的TxtFileIndexer类的实例,
$tf = new Java(’TestLucene.TxtFileIndexer’);
然后就按正常PHP类的挪用办法的体例停止挪用,起首创立索引:
$data_path = "F:/test/php_lucene/htdocs/data/manual"; //界说被索引内容的目次
$index_path = "F:/test/php_lucene/htdocs/data/search"; //界说生成的索引文件寄存目次
$s = $tf->createIndex($index_path,$data_path); //挪用Java类的办法
print $s; //打印前往的了局
此次再尝尝检索:
$index_path = "F:/test/php_lucene/htdocs/data/search"; //界说生成的索引文件寄存目次
$s = $tf->searchword("here is keyword for search",$index_path);
print $s;
别的要注重Java类的途径,可以在PHP里设置
java_require("F:/test/php_lucene/htdocs/lib/"); //这是个例子,我的类和Lucene都放到这个目次下
如许就能够了,是否是很复杂。
PHP源代码:test.php
接上去我把情况设置装备摆设说一下,
起首需求有Java SDK,是必需的,我利用的是1.4.2版的,其它版本应当也没成绩。
PHP5,试过PHP4,应当可以。
因为PHP5带的Java扩大没调通,而且之前用过挪用Java效力很低,很慢,所以利用了 Php/Java Bridge 这个项目。
1.下载JavaBridge
URL:http://sourceforge.net/projects/php-java-bridge/
今朝版本是
php-java-bridge_3.0.8_j2ee.zip
解包后把
JavaBridge\WEB-INF\cgi\java-x86-windows.dll
JavaBridge\WEB-INF\lib\JavaBridge.jar
复制到 c:\php\ext 目次下,并把
java-x86-windows.dll 更名为 php_java.dll
2.修正php.ini(例)
extension=php_java.dll
[Java]
java.class.path = "C:\php\ext\JavaBridge.jar;F:\test\php_lucene\htdocs"
java.java_home = "C:\j2sdk1.4.2_10"
java.library.path = "c:\php\ext;F:\test\php_lucene\htdocs"
3.重启Apache便可。
4.可以找一些文件停止索引
在test.php里可以修正索引文件和数据文件的途径。
TxtFileIndexer.java的37行限制了只索引html后缀的文件,有需求也能够修正。
依据今朝的情形(JavaBridge撑持Linux和Freebsd),完整可以在
linux或freebsd/apache2/php4/lucene/JavaBridge
情况下运转。小试一下身手,大概是没问题了,那么交给你个任务,做个留言本吧,这和HELLO WORLD有一比啊!^_^,同是新手面临的第一道关。
莫相离 该用户已被删除
沙发
发表于 2015-2-4 09:49:12 | 只看该作者
实践是检验自己会不会的真理。
兰色精灵 该用户已被删除
板凳
发表于 2015-2-5 15:18:40 | 只看该作者
真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎,
小妖女 该用户已被删除
地板
发表于 2015-2-5 16:55:51 | 只看该作者
对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。
乐观 该用户已被删除
5#
发表于 2015-2-10 03:40:06 | 只看该作者
最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。
6#
发表于 2015-2-28 18:32:21 | 只看该作者
当然这种网站的会员费就几十块钱。
再见西城 该用户已被删除
7#
发表于 2015-3-10 04:04:29 | 只看该作者
本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。
海妖 该用户已被删除
8#
发表于 2015-3-11 01:40:41 | 只看该作者
多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。
第二个灵魂 该用户已被删除
9#
发表于 2015-3-11 09:37:37 | 只看该作者
如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,
金色的骷髅 该用户已被删除
10#
发表于 2015-3-16 15:29:09 | 只看该作者
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
透明 该用户已被删除
11#
发表于 2015-3-17 12:10:31 | 只看该作者
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
admin 该用户已被删除
12#
发表于 2015-3-23 22:27:10 | 只看该作者
你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。
冷月葬花魂 该用户已被删除
13#
发表于 2015-4-1 13:20:40 | 只看该作者
多看优秀程序员编写的代码,仔细理解他们解决问题的方法,对自身有很大的帮助。
小魔女 该用户已被删除
14#
发表于 2015-4-26 21:23:49 | 只看该作者
装在C盘下面可以利用windows的ghost功能可以还原回来(顺便当做是重转啦),当然啦我的编译目录要放在别的盘下,不然自己的劳动成果就悲剧啦。
灵魂腐蚀 该用户已被删除
15#
发表于 2015-4-28 09:32:27 | 只看该作者
微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox  支持的不是很好,所以能少用还是少用的好。
若相依 该用户已被删除
16#
发表于 2015-5-3 21:44:14 | 只看该作者
写的比较杂,因为我也是个新手,不当至于大家多多指正。
只想知道 该用户已被删除
17#
发表于 2015-5-9 02:52:42 | 只看该作者
当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,
再现理想 该用户已被删除
18#
发表于 2015-6-14 21:25:48 | 只看该作者
没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。
爱飞 该用户已被删除
19#
发表于 2015-6-24 21:46:22 | 只看该作者
写的比较杂,因为我也是个新手,不当至于大家多多指正。
不帅 该用户已被删除
20#
发表于 2015-7-3 01:03:57 | 只看该作者
Ps:以上纯属原创,如有雷同,纯属巧合
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-10 21:12

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表