日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

php lucene索引,用PHP调用Lucene包来实现全文检索_PHP教程

發(fā)布時間:2025/3/15 php 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php lucene索引,用PHP调用Lucene包来实现全文检索_PHP教程 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

由于工作需要,需要使用PHP實現(xiàn)對網(wǎng)站內(nèi)大量數(shù)量進(jìn)行全文檢索,

而且目前最流行的全文檢索的搜索引擎庫就是Lucene了,

它是Apache Jakarta的一個子項目,并且提供了簡單實用的API,

用這些API,就可以對任何基礎(chǔ)文本的數(shù)據(jù)(包括數(shù)據(jù)庫)進(jìn)行全文檢索。

因為PHP本身就支持調(diào)用外部Java類,所以先用Java寫了一個類,

這個類通過調(diào)用Lucene的API,實現(xiàn)了兩個方法:

public String createIndex(String indexDir_path,String dataDir_path)

public String searchword(String ss,String index_path)

其中createIndex是創(chuàng)建索引方法,

傳入了兩個參數(shù)分別是indexDir_path(索引文件的目錄),dataDir_path(被索引的文件目錄),返回被索引的文件列表字符串,

另一個是searchword,通過傳入的關(guān)鍵字參數(shù)(ss)對索引進(jìn)行檢索,index_path就是索引文件的目錄。返回所有檢索到的文件。

這里是源代碼,很簡單,大家可以參考一下:TxtFileIndexer.java

而PHP程序就調(diào)用這兩個方法,實現(xiàn)對Lucene的調(diào)用,從而達(dá)到全文檢索的目的。

PHP的調(diào)用方法如下:

先創(chuàng)建一個我們寫的TxtFileIndexer類的實例,

$tf = new Java(TestLucene.TxtFileIndexer);

然后就按正常PHP類的調(diào)用方法的方式進(jìn)行調(diào)用,首先創(chuàng)建索引:

$data_path = "F:/test/php_lucene/htdocs/data/manual"; //定義被索引內(nèi)容的目錄

$index_path = "F:/test/php_lucene/htdocs/data/search"; //定義生成的索引文件存放目錄

$s = $tf->createIndex($index_path,$data_path); //調(diào)用Java類的方法

print $s; //打印返回的結(jié)果

這次再試試檢索:

$index_path = "F:/test/php_lucene/htdocs/data/search"; //定義生成的索引文件存放目錄

$s = $tf->searchword("here is keyword for search",$index_path);

print $s;

另外要注意Java類的路徑,可以在PHP里設(shè)置

java_require("F:/test/php_lucene/htdocs/lib/"); //這是個例子,我的類和Lucene都放到這個目錄下

這樣就可以了,是不是很簡單。

PHP源代碼:test.php

接下來我把環(huán)境配置說一下,

首先需要有Java SDK,是必須的,我使用的是1.4.2版的,其它版本應(yīng)該也沒問題。

PHP5,試過PHP4,應(yīng)該可以。

由于PHP5帶的Java擴(kuò)展沒調(diào)通,并且以前用過調(diào)用Java效率很低,很慢,所以使用了 Php/Java Bridge 這個項目。

1.下載JavaBridge

URL:http://sourceforge.net/projects/php-java-bridge/

目前版本是

php-java-bridge_3.0.8_j2ee.zip

解包后把

JavaBridgeWEB-INFcgijava-x86-windows.dll

JavaBridgeWEB-INFlibJavaBridge.jar

復(fù)制到 c:phpext 目錄下,并把

java-x86-windows.dll 改名為 php_java.dll

2.修改php.ini(例)

extension=php_java.dll

[Java]

java.class.path = "C:phpextJavaBridge.jar;F:testphp_lucenehtdocs"

java.java_home = "C:j2sdk1.4.2_10"

java.library.path = "c:phpext;F:testphp_lucenehtdocs"

3.重啟Apache即可。

4.可以找一些文件進(jìn)行索引

在test.php里可以修改索引文件和數(shù)據(jù)文件的路徑。

TxtFileIndexer.java的37行限制了只索引html后綴的文件,有需要也可以修改。

根據(jù)目前的情況(JavaBridge支持Linux和Freebsd),完全可以在

linux或freebsd/apache2/php4/lucene/JavaBridge

環(huán)境下運行。

http://www.bkjia.com/PHPjc/486089.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/486089.htmlTechArticle由于工作需要,需要使用PHP實現(xiàn)對網(wǎng)站內(nèi)大量數(shù)量進(jìn)行全文檢索, 而且目前最流行的全文檢索的搜索引擎庫就是Lucene了, 它是Apache Jakart...

本條技術(shù)文章來源于互聯(lián)網(wǎng),如果無意侵犯您的權(quán)益請點擊此處反饋版權(quán)投訴

本文系統(tǒng)來源:php中文網(wǎng)

總結(jié)

以上是生活随笔為你收集整理的php lucene索引,用PHP调用Lucene包来实现全文检索_PHP教程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。