2012-06-02 5 views
0

J'essaie de joker un champ en utilisant Zend recherche Lucene.Utilisation de Zend Search Lucene avec joker

$index = Zend_Search_Lucene::open("/data/my_index1"); 

$doc = new Zend_Search_Lucene_Document(); 

$doc->addField(Zend_Search_Lucene_Field::Text('date',$date->format('dmY'))); 

$index->addDocument($doc); 

$index->updateIndex(); 

$hits = $index->find('2012*'); 

La dernière ligne ne fonctionne pas parce que ma date est quelque chose comme 02062012. Si j'essaye avec $hits = $index->find('*2012*'); ne fonctionne pas non plus.

Une idée?

+0

Vous devriez vérifier si la date est indexée correctement. Certains analyseurs ne marqueront pas les chiffres et les dates. Vous devriez parcourir votre index avec luke pour voir si votre index contient les termes attendus. – dbrumann

+0

Je pense que l'index est ok parce que si j'essaye avec '$ hits = $ index-> ​​find ('02062012');' fonctionne comme il se doit. –

+0

Avez-vous essayé '$ index-> ​​find ('0206 *');'? Je ne suis pas sûr, mais je pense que l'utilisation de l'astérisque dans votre requête ne fonctionne pas, car il est à la recherche de termes qui contiennent 2012 suivi par quelque chose. – dbrumann

Répondre

0

Vous devez également vérifier que votre configuration de recherche autorise un '*', car ce n'est pas le cas par défaut dans Lucene.