2011-09-05 3 views
4

J'ajoute ces champs lorsque je stocke des données dans Lucene:requête Zend Lucene

$index->addField(Zend_Search_Lucene_Field::Keyword('id', $entry->id)); 
$index->addField(Zend_Search_Lucene_Field::Keyword('type', $entry->type)); 

Comment faire une requête pour récupérer des données uniquement avec un certain type?

J'ai essayé:

$query = "type IN ('a', 'b', 'c')"; // get data that has either of these types 
$this->query->addSubquery(Zend_Search_Lucene_Search_QueryParser::parse($query), true); 

mais ça ne fonctionne pas ...

+0

ok, j'ai trouvé une solution en utilisant 'type: (a) OU type: (b)' etc .. – Alex

+3

Pourriez-vous s'il vous plaît envisager de mettre votre commentaire en réponse réelle? C'est [OK to self-answer] (http://meta.stackexchange.com/questions/12513/should-i-not-answer-my-own-questions/12519#12519) votre propre question. Et cela aiderait à garder la liste "sans réponse" claire pour les questions qui n'ont pas encore été résolues ^^ –

Répondre

5

Eh bien, ma solution était:

$query = "type:(a) OR type:(b)";

et il est également autorisé à écrire comme ceci (regroupement des champs):

$query = "type:(a OR b)";