2010-04-19 7 views
5

chaps après-midi,En utilisant Solr et le port Zends Lucene ensemble

Après mes aventures avec Zend Lucene-Search et découvrir ce n'est pas tout son fissuré à l'être lors de l'indexation grands ensembles de données, je me suis tourné vers Solr (Merci à Bill Karwin pour ça :))

L'indexation de la base de données par Solr est beaucoup plus rapide maintenant, en prenant un peu plus de 8 minutes pour indexer une table d'un peu plus de 1,7 million de lignes - ce dont je suis très satisfait . Cependant, quand je viens chercher l'index avec le port de Zend, je rencontre l'erreur suivante:

Erreur fatale: exception non interceptée 'Zend_Search_Lucene_Exception' avec le message 'Format de fichier de segments non pris en charge' dans /var/www/Zend/Search/Lucene.php:407 Trace de pile: # 0/var/www/Zend/Search/Lucene .php (555): Zend_Search_Lucene -> _ readSegmentsFile() # 1 /var/www/z_search.php(12): Zend_Search_Lucene -> __ construct ('tmp/feeds_index') # 2 {main} lancé dans/var/www/Zend /Search/Lucene.php sur la ligne 407

J'ai essayé d'avoir une recherche autour mais ne peux pas sembler trouver quelque chose au sujet de ce problème, tout le monde semble juste pouvoir les faire fonctionner?

Toute aide comme toujours très apprécié :)

Merci,

Tom

Répondre

2

J'ai confirmé sur ma machine qu'un index Lucene créé par Solr ne peut pas être lu par Zend_Search_Lucene. Zend_Search_Lucene lève cette exception lorsqu'il détecte un format d'index Lucene qu'il ne prend pas en charge. En regardant le code, Zend prend actuellement en charge les formats pré-2.1, 2.1 et 2.3. Solr crée un index au format FORMAT_HAS_PROX qui, pour autant que je sache, est utilisé par Lucene 2.9 et supérieur.

+0

Ahhh ordures. N'y a-t-il pas de travail alors je présume? Je suppose qu'ils ne seront pas mis à jour le code Zend bientôt non plus. On dirait que je vais pousser pour ce serveur Jetty/Tomcat. – Tom

+1

Je pense qu'une fois que vous l'aurez mis en marche, vous serez forcément plus heureux. La seule autre suggestion que j'ai est d'essayer de voir si vous pouvez forcer Solr à créer l'index Lucene au format 2.3. Mais je ne sais pas comment on pourrait faire ça. –

1

jamais utilisé Zend avant, mais je l'ai utilisé Lucene/Solr. Utilisez-vous la même version de Lucene pour l'indexation Solr et le port Zend? Vérifiez pour voir quel fichier jar Lucene est utilisé pour chacun. Si elles sont différentes, Solr pourrait produire un index Lucene qui n'est pas compatible avec le port Zend.

+0

Il est probable que l'index de Solr est plus avancé que celui de Zend. Vous pouvez envisager d'aller plus loin en utilisant Solr pour la recherche et en communiquant avec PHP via une interface HTTP, telle que XML ou JSON. –

+0

Nous avions considéré cela, le seul problème étant que nous ne sommes pas sûrs des possibilités de lancer Jetty/Tomcat sur notre serveur live. Le plan consistait à indexer la base de données localement puis à la télécharger tous les x jours. Je vais regarder dans les versions de Lucene pour Zend et Solr, et m'assurer qu'ils chantent de la même feuille de cantique. – Tom

Questions connexes