乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      用PHP調(diào)用Lucene包來(lái)實(shí)現(xiàn)Lucene

       Ralf_Jones 2006-05-15

      作者:張杰
      URL:http://spaces./members/newbdez33/
      http://www./



      由于工作需要,需要使用PHP實(shí)現(xiàn)對(duì)網(wǎng)站內(nèi)大量數(shù)量進(jìn)行全文檢索,
      而且目前最流行的全文檢索的搜索引擎庫(kù)就是Lucene了,
      它是Apache Jakarta的一個(gè)子項(xiàng)目,并且提供了簡(jiǎn)單實(shí)用的API,
      用這些API,就可以對(duì)任何基本文本的數(shù)據(jù)(包括數(shù)據(jù)庫(kù))進(jìn)行全文檢索。


      因?yàn)镻HP本身就支持調(diào)用外部Java類,所以先用Java寫了一個(gè)類,
      這個(gè)類通過(guò)調(diào)用Lucene的API,實(shí)現(xiàn)了兩個(gè)方法: 

      • public String createIndex(String indexDir_path,String dataDir_path)
      • public String searchword(String ss,String index_path)

       其中createIndex是創(chuàng)建索引方法,
      傳入了兩個(gè)參數(shù)分別是indexDir_path(索引文件的目錄),dataDir_path(被索引的文件目錄),返回被索引的文件列表字符串,
      另一個(gè)是searchword,通過(guò)傳入的關(guān)鍵字參數(shù)(ss)對(duì)索引進(jìn)行檢索,index_path就是索引文件的目錄。返回所有檢索到的文件。

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

      而PHP程序就調(diào)用這兩個(gè)方法,實(shí)現(xiàn)對(duì)Lucene的調(diào)用,從而達(dá)到全文檢索的目的。
      PHP的調(diào)用方法如下: 
      先創(chuàng)建一個(gè)我們寫的TxtFileIndexer類的實(shí)例,

          $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/");  //這是個(gè)例子,我的類和Lucene都放到這個(gè)目錄下

      這樣就可以了,是不是很簡(jiǎn)單。

      PHP源代碼:test.php


      接下來(lái)我把環(huán)境配置說(shuō)一下,
      首先需要有Java SDK,是必須的,我使用的是1.4.2版的,其它版本應(yīng)該也沒(méi)問(wèn)題。
      PHP5,試過(guò)PHP4,應(yīng)該可以。

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

      1.下載JavaBridge
      URL:http:///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
      復(fù)制到 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.可以找一些文件進(jìn)行索引
      在test.php里可以修改索引文件和數(shù)據(jù)文件的路徑。
      TxtFileIndexer.java的37行限制了只索引html后綴的文件,有需要也可以修改。

      根據(jù)目前的情況(JavaBridge支持Linux和Freebsd),完全可以在
      linux或freebsd/apache2/php4/lucene/JavaBridge
      環(huán)境下運(yùn)行。


      [返回]

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多