Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 23-04-2007 16:13:49

ndesaleux
Membre
Date d'inscription: 16-04-2007
Messages: 196
Site web

Intégration d'un moteur de recherche via Zend_Search_Lucene

Bonjour,

je suis en train d'essayer d'integrer un moteur de recherche via Zend_Search_Lucene.
Cependant, il existe un probleme du au caractère accentué.

Dans un premier temps, j'ai essayé d'integrer le tout en mettant les entitées HTML des caractères mais les resultats des recherches n'était pas corrects, normal à cause du &...;

Ensuite, j'ai transformer les entitées HTML via html_entity_decode, mais j'ai apparement un problème avec iconv ?

Notice: iconv() [function.iconv]: Detected an illegal character in input string in /home/newspeg/library/Zend/Search/Lucene/Analysis/Analyzer/Common/Text.php on line 56

Notice: iconv() [function.iconv]: Detected an illegal character in input string in /home/newspeg/library/Zend/Search/Lucene/Field.php on line 188

Pour l'instant, je supprime tout les accents pour pouvoir affiner mon systeme de recherche mais cela n'est que temporaire.

Si quelqu'un a une piste a me donner, ou si quelqu'un a déjà integrer un moteur de recherche via ZF, je suis preneur de toute informations.

Par avance, merci

Hors ligne

 

#2 23-04-2007 17:16:29

ndesaleux
Membre
Date d'inscription: 16-04-2007
Messages: 196
Site web

Re: Intégration d'un moteur de recherche via Zend_Search_Lucene

Je me réponds a moi même .

Tout ce trouve ici :
http://framework.zend.com/wiki/display/ … mail/18970

Désolé pour le dérangement

Hors ligne

 

#3 23-04-2007 17:24:58

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: Intégration d'un moteur de recherche via Zend_Search_Lucene

Merci pour l'info smile


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#4 04-05-2007 11:13:53

ndesaleux
Membre
Date d'inscription: 16-04-2007
Messages: 196
Site web

Re: Intégration d'un moteur de recherche via Zend_Search_Lucene

Retour sur le problème des accents :

je ne pose ici que les elements censés être identique

Code:

// class Doc héritant de Zend_Search_Lucene_Document

function title($title){
    parent::addField(Zend_Search_Lucene_Field::Text('title', $title,'iso-8859-1'));
}

function keyword($keyword){
    parent::addField(Zend_Search_Lucene_Field::Text('keyword', $keyword),'iso-8859-1');
}

Code:

// code permettant l'ajout des documents 
$doc->title((html_entity_decode($row['titre'])));
$doc->keyword(html_entity_decode($categorie['nom']));

l'interclassement de ma BDD est latin1_swedish_ci

les message d'erreur n'apparait que pour la catégorie (keyword)
Detected an illegal character in input string in /home/newspeg/library/Zend/Search/Lucene/Analysis/Analyzer/Common/Utf8.php on line 69

Detected an illegal character in input string in /home/newspeg/library/Zend/Search/Lucene/Field.php on line 188

Exemple de terme ayant un problème (affichage plain text ):
Média - Média // catégorie
Accords à France Télévisions - Accords à France Télévisions // title

le premier terme étant celui dans l'index et le deuxieme celui que j'essaye d'ajouter
l'affichage du title est correct alors que l'affichage de la catégorie s'arrete au premier accent trouvé.

J'ai beau parcourir Google, les différents tuto ou exemples trouvés sur le net, je n'arrive pas à resoudre ce problème.

Hors ligne

 

#5 10-05-2007 18:12:18

ndesaleux
Membre
Date d'inscription: 16-04-2007
Messages: 196
Site web

Re: Intégration d'un moteur de recherche via Zend_Search_Lucene

Code:

// class Doc héritant de Zend_Search_Lucene_Document

function title($title){
    parent::addField(Zend_Search_Lucene_Field::Text('title', $title,'iso-8859-1'));
}

/* code erroné
function keyword($keyword){
    parent::addField(Zend_Search_Lucene_Field::Text('keyword', $keyword),'iso-8859-1');
}
// */
// code corrigé 
function keyword($keyword){
    parent::addField(Zend_Search_Lucene_Field::Text('keyword', $keyword,'iso-8859-1'));
}

Ca m'apprendra a être trop dans le guidon ( &#$¤% de parenthèse)

Hors ligne

 

#6 19-06-2007 11:07:50

Gauthier_Zend
Nouveau membre
Date d'inscription: 19-06-2007
Messages: 1

Re: Intégration d'un moteur de recherche via Zend_Search_Lucene

moi j'ai trouvé nettement plus simple que tout ça pour régler le problème des accents. J'ai utilisé un header HTML dans index.php :

header('Content-type: text/html;charset=UTF-8');

Notez que ça marche aussi pour les méthodes (actions) appelées en Ajax smile

Hors ligne

 

#7 14-08-2007 02:34:54

scramatte
Membre
Date d'inscription: 14-08-2007
Messages: 20

Re: Intégration d'un moteur de recherche via Zend_Search_Lucene

Bonjour,

Quelqu'un serai t'il  comment gérer la pagination des résultats de façon optimale  ?

Pour ma part le reste a l'air de fonctionner correctement ... mais faut que je continue de potasser ...

Je travaille en UTF-8  (BD, header, ...). J'ai juste un problème avec le caractère "&"

De plus si dans ma requête j'ai ce même caractère "&" j'obtient une belle Exception (ex: Maurel&Prom )

Fatal error: Uncaught exception 'Zend_Search_Lucene_Search_QueryParserException' with message 'Two chars lexeme expected. Position is 7.' in /home/vhosts/m/mauritanien/library/Zend/Search/Lucene/Search/QueryLexer.php:397 Stack trace: #0 /home/vhosts/m/mauritanien/library/Zend/Search/Lucene/FSMAction.php(62): Zend_Search_Lucene_Search_QueryLexer->addQuerySyntaxLexeme() #1 /home/vhosts/m/mauritanien/library/Zend/Search/Lucene/FSM.php(419): Zend_Search_Lucene_FSMAction->doAction() #2 /home/vhosts/m/mauritanien/library/Zend/Search/Lucene/Search/QueryLexer.php(358): Zend_Search_Lucene_FSM->process(1) #3 /home/vhosts/m/mauritanien/library/Zend/Search/Lucene/Search/QueryParser.php(337): Zend_Search_Lucene_Search_QueryLexer->tokenize('maurel&prom', 'utf-8') #4 /home/vhosts/m/mauritanien/library/Zend/Search/Lucene.php(554): Zend_Search_Lucene_Search_QueryParser::parse('maurel&prom') #5 [internal function]: Zend_Search_Lucene->find('maurel&prom') #6 /home/vhosts/m/mauritanien/library/Zend/Search/Lucene/Proxy.php(272): call_user_fun in /home/vhosts/m/mauritanien/library/Zend/Search/Lucene/Search/QueryLexer.php on line 397

Hors ligne

 

#8 10-09-2007 15:41:38

frederic
Membre
Date d'inscription: 04-09-2007
Messages: 31

Re: Intégration d'un moteur de recherche via Zend_Search_Lucene

Hello, j'ai effectivement ce problème d'accent. J'ai tout encodé en UTF-8 et je n'arrive pas à effectuer une récherche sur les accents. Il ne me retourne rien... #@éèè%ain d'encodage de $~à@de

PS. : en fait il a suffit de faire un utf8_decode() sur la chaine de ma recherche et c'est passé.

Dernière modification par frederic (10-09-2007 16:09:23)

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages