PHP调用lucene(java类)的问题
最近要用php+lucene来搭一个检索页面,基本思路是让用户在php输入信息,然后php页面调用lucene进行搜索并返回结果给php,php将结果呈现给用户。
目前环境winXP+PHP5.3+apache2.2+mysql,lucene版本3.5
我的想法是:先用java写了一个调用lucene API的类,实现了基本的检索功能。然后用php调用这个java类来进行检索。
查了下相关文档,php5已经没有php_java.dll扩展,要使用php_java_bridge。
于是下了php_java_bridge5.4 ,照着网上搜到的资料,安装配置基本成功。测试时:
1、可以调用java的内置类。
2、自定义java类(如果只使用了java内置类),编译成class文件后打包成jar文件,用java_require("...")导入后可以调用自定义类。
但现在的问题是:
如果自定义java类中,import了lucene的类(这正是我目前的做法),则在php中调用此java类时会失败,查看javaBridge.jar的日志文件vmbridge.log,错误主要类似:
java.lang.ClassNotFoundException: Unresolved external reference: java.lang.NoClassDefFoundError: org/apache/lucene/store/Directory. -- Unable to call constructor
个人理解似乎是找不到lucene API中的类,导致无法创建对象。
现在能想到的就是直接用php来调用lucene的API接口,不知道可行否,但这样感觉比较麻烦。
本人比较菜,php调用java类来协调工作的机制我不是很清楚,郁闷了一整天了,求指点好的解决方案。。。
回复讨论(解决方案)
可以走http。调用java的接口返回json数据。然后php做相应的展现。没有必要通过扩展和java协作
主贴的情况有所进展,我将lucene.jar一起打包后,就不会出现上面的问题。
但在php里调用自定义类的方法来检索文档,似乎无法命中。。。代码类似:
$lucene = new Java("testLucene.TestLucene");
echo 'path='.$lucene->search(new Java("java.lang.String","美"),new Java("java.lang.String","D:/test/index/"));
?>
同样的代码(也是实例化自定义类后调用search方法)在java写的测试类中就可以正确检索到最匹配“美”字的文档。。。
-----------------------------------分割------------------------------------------------
可以走http。调用java的接口返回json数据。然后php做相应的展现。没有必要通过扩展和java协作
终于等到回复了,先感谢下~
可以说的详细些或者给个简单的示例吗?
我也遇到这问题了,楼主或者其他人如果有解决办法 能否联系一下我啊 QQ784718085 或者发邮件也行

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Les longues URL, souvent encombrées de mots clés et de paramètres de suivi, peuvent dissuader les visiteurs. Un script de raccourcissement d'URL offre une solution, créant des liens concis idéaux pour les médias sociaux et d'autres plateformes. Ces scripts sont utiles pour les sites Web individuels

À la suite de son acquisition de haut niveau par Facebook en 2012, Instagram a adopté deux ensembles d'API pour une utilisation tierce. Ce sont l'API graphique Instagram et l'API d'affichage de base Instagram. En tant que développeur créant une application qui nécessite des informations à partir d'un

Laravel simplifie la gestion des données de session temporaires à l'aide de ses méthodes de flash intuitives. Ceci est parfait pour afficher de brefs messages, alertes ou notifications dans votre application. Les données ne persistent que pour la demande ultérieure par défaut: $ demande-

Il s'agit de la deuxième et dernière partie de la série sur la construction d'une application React avec un back-end Laravel. Dans la première partie de la série, nous avons créé une API RESTful utilisant Laravel pour une application de liste de base sur le produit. Dans ce tutoriel, nous serons Dev

Laravel fournit une syntaxe de simulation de réponse HTTP concise, simplifiant les tests d'interaction HTTP. Cette approche réduit considérablement la redondance du code tout en rendant votre simulation de test plus intuitive. L'implémentation de base fournit une variété de raccourcis de type de réponse: Utiliser illuminate \ support \ faades \ http; Http :: faux ([[ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

L'extension PHP Client URL (CURL) est un outil puissant pour les développeurs, permettant une interaction transparente avec des serveurs distants et des API REST. En tirant parti de Libcurl, une bibliothèque de transfert de fichiers multi-protocol très respectée, PHP Curl facilite Efficient Execu

Voulez-vous fournir des solutions instantanées en temps réel aux problèmes les plus pressants de vos clients? Le chat en direct vous permet d'avoir des conversations en temps réel avec les clients et de résoudre leurs problèmes instantanément. Il vous permet de fournir un service plus rapide à votre personnalité

L'enquête sur le paysage PHP 2025 étudie les tendances actuelles de développement du PHP. Il explore l'utilisation du cadre, les méthodes de déploiement et les défis, visant à fournir des informations aux développeurs et aux entreprises. L'enquête prévoit la croissance de la PHP moderne versio
