IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Autres composants PHP Discussion :

[Zend_Lucene] $doc->addField ne fonctionne pas sur certains serveurs


Sujet :

Autres composants PHP

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut [Zend_Lucene] $doc->addField ne fonctionne pas sur certains serveurs
    Bonjour,

    J'ai fait un programme qui crée un index Lucene pour un site existant. Voici le programme en résumé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $index = Zend_Search_Lucene::create ( "idxPP/" );
    addDocument($index,'http://www.xyz.com/index.php','Accueil','html');
    $index->commit ();
     
    function addDocument(&$index, $url, $titre, $type) {
    	$doc = Zend_Search_Lucene_Document_Html::loadHTMLFile ( $url );
    	$doc->addField ( Zend_Search_Lucene_Field::UnIndexed ( 'url', $url ) );
    	$doc->addField ( Zend_Search_Lucene_Field::UnIndexed ( 'titre', $titre ) );
    	$doc->addField ( Zend_Search_Lucene_Field::UnIndexed ( 'type', $type ) );
    	$index->addDocument ( $doc );
    }
    Le programme et la recherche fonctionnent bien sur mon serveur. La recherche ressemble à ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $index = Zend_Search_Lucene::open ( "idxPP/" );
    $term = new Zend_Search_Lucene_Index_Term ( 'mot', 'body' );
    $query = new Zend_Search_Lucene_Search_Query_Term ( $term );
    $hits = $index->find ( $query );
     
    if ($hits){
    	foreach ( $hits as $hit ) {
    		echo '<h2>' . $hit->titre .':'.$hit->score .'</h2>';
    		echo '<p><a href="' . $hit->url . '">' . $hit->url . '</a></p>';
    	}
    }
    Si je déploie le même code sur le serveur de mon client, l'indexation fonctionne mais les les champs ajoutés avec addField() n'existent tout simplement pas.

    Les deux serveurs sont assez semblables: PHP 5.2.5 pour mon serveur et 5.2.6 pour mon client.

    Est-ce que quelqu'un aurait une piste?

    Merci

    Jean

  2. #2
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Bonjour,

    as-tu réussi à résoudre ce problème ?

    Si non, peux-tu vérifier que tes champs ont bien été ajoutés dans ta fonction addDocument avec la méthode getFieldNames() sur $doc ?

Discussions similaires

  1. Le rewriting ne fonctionne pas sur mon serveur
    Par Regis0122 dans le forum Apache
    Réponses: 2
    Dernier message: 30/01/2010, 20h58
  2. Le php ne fonctionne pas sur certaine page ?
    Par dark vador 008 dans le forum Langage
    Réponses: 2
    Dernier message: 01/07/2009, 17h09
  3. Réponses: 1
    Dernier message: 22/06/2009, 09h16
  4. Réponses: 2
    Dernier message: 23/04/2008, 12h17
  5. mod_rewrite ne fonctionne pas sur mon serveur
    Par lsamourail dans le forum Apache
    Réponses: 2
    Dernier message: 13/01/2008, 13h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo