2 votos

GeoServer CQL Filter IN y strToLowerCase

Estoy intentando consultar GeoServer con un filtro CQL utilizando la cláusula IN.

Si envío una petición como ésta, recibo datos de vuelta.

http://server.com/geoserver/server/wfs?service=wfs&version=1.0.0&request=getfeature&typename=server:states&CQL_FILTER=state_name%20in%20(%27Texas%27)&outputFormat=application/json

pero si envío una url con strToLowerCase alrededor de state_name no funcionará.

http://server.com/geoserver/server/wfs?service=wfs&version=1.0.0&request=getfeature&typename=server:states&CQL_FILTER=strToLowerCase(nombre_estado)%20en%20(%27Texas%27)&outputFormat=application/json

¿Hay alguna forma de evitarlo?

2voto

Braiam Puntos 120

Mirando los logs, CQL no acepta IN después de strToLoweCase

Caused by: org.geotools.filter.text.cql2.CQLException: Encountered "in" at line 1, column 28. Was expecting one of:
    <EOF> 
    "and" ...
    "or" ...
    ";" ...
    "*" ...
    "/" ...
    "+" ...
    "-" ...
    "not" ...
    "like" ...
    "ilike" ...
    "exists" ...
    "does-not-exist" ...
    "is" ...
    "between" ...
    "=" ...
    ">" ...
    "<" ...
    ">=" ...
    "<=" ...
    "<>" ...
     Parsing : strToLowerCase(STATE_NAME) in ('texas','abc').

Así que tendría que utilizar = y or

 strToLowerCase(STATE_NAME) = 'texas' or strToLowerCase(STATE_NAME) = 'florida'

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X