2011-05-11 16 views
24

estoy teniendo documentos con un campo multivaluado "sharedTo" que contiene los grupos en los que se comparte el documento. Ahora quiero encontrar todos los documentos que se comparten en al menos uno de una lista de grupos determinados. P.ej. Quiero encontrar todos los documentos que se comparten con el grupo "foo" o el grupo "barra" o ambos. Actualmente estoy construyendo una consulta como esta:¿Cómo hacer una consulta IN en Solr?

sharedTo:"foo" OR sharedTo:"bar" 

Para cada grupo acabo de agregar una nueva parte de consulta OR. Esto funciona, sin embargo, me pregunto si hay una manera más eficiente de hacerlo como un

sharedTo IN ('foo', 'bar') 

Respuesta

53

si su operador por defecto es O, entonces sólo puede dar la consulta como

sharedTo :('foo ' 'valor')

Si su operador por defecto es Y, entonces usted tiene que hacerlo de esta manera: sharedTo: (foo o bar)

+0

que funciona perfectamente. ¡Gracias! –

+0

Debería usar espacio entre los paréntesis interiores del valor en lugar de la coma. –

+1

gracias @parvin por señalar. La coma puede funcionar dependiendo de los analizadores, pero el espacio es una forma más apropiada. – Umar

Cuestiones relacionadas