web-dev-qa-db-fra.com

Comment faire une requête IN dans Solr?

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 l'un d'une liste de groupes donnés. Par exemple. Je veux trouver tous les documents partagés avec le groupe "foo" ou le groupe "bar" ou les deux. Actuellement, je crée une requête comme celle-ci:

sharedTo:"foo" OR sharedTo:"bar"

Pour chaque groupe, j'ajoute juste une nouvelle partie de requête OR. Cela fonctionne, mais je me demande s'il existe un moyen plus efficace de le faire comme un

sharedTo IN ('foo', 'bar')
30
Jan Thomä

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

sharedTo :( 'foo' 'bar')

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

59
Umar

La solution ci-dessus n'a pas fonctionné pour moi. Mais cette syntaxe

nom_colonne: + (valeur1 valeur2)

http://harmssite.com/2012/09/solr-query-for-mimicking-sql-in-operator-functionality/

0
gilango