2009-10-02 6 views
0

Ok, alors voici l'affaire: Lucene fait les choses bizarres pour moi. Tout est indexé correctement, tout fonctionne, tout est rapide, etc.Zend Lucene se comporte mal: Les requêtes fonctionnent un par un mais pas ensemble

Donc je recherche une catégorie en anglais. Des centaines de résultats apparaissent. Je recherche un pays en anglais. Des centaines de résultats apparaissent. Je recherche donc une catégorie ET un pays en anglais. Une combinaison que JE SAIS est valide. Je reçois Jack. Rien. Zip .... Pourquoi?

Zend_Search_Lucene_Analysis_Analyzer::setDefault(new Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive()); 
$index = Library_Search_Lucene::open(SearchIndexer::getIndexDirectory());  

$query = new Zend_Search_Lucene_Search_Query_Boolean(); 

$queryString = new Zend_Search_Lucene_Search_Query_MultiTerm(); 
$queryString->addTerm(new Zend_Search_Lucene_Index_Term('lang' . $language, 'langSite')); 
$query->addSubquery($queryString, true); 

if (isset($idCategory)) { 
$queryCategory = new Zend_Search_Lucene_Search_Query_MultiTerm(); 
$queryCategory->addTerm(new Zend_Search_Lucene_Index_Term($idCategory, 'idCategory')); 
$query->addSubquery($queryCategory, true); 
} 

if (isset($country)) { 
$queryLocation = new Zend_Search_Lucene_Search_Query_MultiTerm(); 
$queryLocation->addTerm(new Zend_Search_Lucene_Index_Term($country, 'locationsClean')); 
$query->addSubquery($queryLocation, true); 
} 

$hits = $index->find($query); 

$ query-> getQueryTerms() renvoie un tableau valide de termes. Il n'y a pas d'erreurs Qu'est-ce que je fais mal?

Répondre

0

Nous avons exactement le même problème. Il est noté dans le bugtracker, qui est actuellement hors ligne, mais peut être trouvé au http://www.zendframework.com/issues. Peut-être que ça va jamais être réparé, mais même alors, c'est douloureusement lent.

+0

Ma suggestion est de laisser tomber Lucene ensemble. Je n'ai jamais travaillé avec un moteur plus lent. Je peux tout aussi bien faire des recherches en texte intégral dans mysql ou dans des fichiers txt séparés par des virgules. – John

+0

Attention: Lucene est super, c'est Zend_Search_Lucene c'est de la merde. Je travaille beaucoup avec l'implémentation Java et je peux vous dire que c'est stable et rapide! –