Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour a tous,
Pour un projet symfony j'utilise le moteur de recherche Lucene du framework zend 1.10.5
J'ai indexé plusieurs document dont un contenant le mot "Meriva" ds son titre est dans sa description
J'ai besoin d'utilisér les "wildcard" de facon a ce que mes documents soit remonter ds mes recherches meme si seulment quelque lettre (disons 3 au minimum) d'un mot sont tapés.
Et j'ai eu quelque surprise...
Voici le code que j'utilise pour ma recherche:
$this->criteria = "meriv?"; //ko 0 result $this->criteria = "meriv?"; //ok 1 result $this->criteria = "?eriv?"; //ok 1 result $this->criteria = "?eri?"; //ko 0 result $this->lucene_index = Doctrine::getTable("Annonce")->getLuceneIndex(); //$searchIndex = Zend_Search_Lucene::open($config->datafiles->directory . 'search-index'); Zend_Search_Lucene::setDefaultSearchField('title'); $filter = new Zend_Filter_Word_SeparatorToSeparator(' ','* *'); $searchCriteria = $this->criteria; $searchCriteria = $filter->filter($searchCriteria); Zend_Search_Lucene_Search_Query_Wildcard::setMinPrefixLength(0); $this->query = Zend_Search_Lucene_Search_QueryParser::parse(''.$searchCriteria.''); //$searchResults = $searchIndex->find($query, 'title', SORT_STRING);
Je ne comprends les resultats que j'obtiens lorsque j'utilise les wildcards:
... $this->criteria = "meriv?"; //ko 0 result $this->criteria = "meriv?"; //ok 1 result $this->criteria = "?eriv?"; //ok 1 result $this->criteria = "?eri?"; //ko 0 result ...
Hors tous les recherches précédente devrait me remonter mon document "Meriva".
Mais visiblement j'ai du manqué quelquechose...
Quelqu'un peut m'éclairer?
Hors ligne
Pages: 1