2011-05-11 5 views
24

J'ai des documents avec un champ à plusieurs valeurs "sharedTo" qui contient les groupes auxquels le document est partagé. Maintenant, je veux trouver tous les documents qui sont partagés avec au moins une des listes de groupes donnés. Par exemple. Je veux trouver tous les documents qui sont partagés avec le groupe "foo" ou le groupe "bar" ou les deux. Actuellement, je construis une requête comme celle-ci:Comment faire une requête IN dans Solr?

sharedTo:"foo" OR sharedTo:"bar" 

Pour chaque groupe, je viens d'ajouter une nouvelle partie de requête OR. Cela fonctionne, mais je me demande s'il y a un moyen plus efficace de faire cela comme un

sharedTo IN ('foo', 'bar') 

Répondre

53

si votre opérateur par défaut est OU, vous pouvez simplement donner la requête comme

sharedTo :('foo ' 'bar')

Si votre opérateur par défaut est ET, alors vous devrez le faire comme ceci: sharedTo: (foo ou bar)

+0

Cela fonctionne parfaitement. Je vous remercie! –

+0

Vous devez utiliser un espace entre les parenthèses entre les valeurs au lieu de la virgule. –

+1

merci @parvin pour souligner. La virgule peut fonctionner selon les analyseurs, mais l'espace est un moyen plus approprié. – Umar

Questions connexes