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?
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
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! –