I have a Postgis (2.2.3 in PostgreSQL 9.5) database with a view that has aggregate array fields.
I can filter on these fields directly on the DB with
Select * from myschema."ViewWithArrays" v
where '7415CM' = ANY(v."Postcodes")
But I cannot seem to find the syntax for filtering these array fields with CQL to my Geoserver (2.10.1) which has the view as a layer. http://docs.geoserver.org/stable/en/user/filter/ecql_reference.html#filter-ecql-reference
The IN keyword seems logical, but the following does not work:
CQL_FILTER=7415CM IN Postcodes
This gives the following error:
Could not parse CQL filter list. Encountered "7415 CM" at line 1, column 25. Was expecting one of: "not" ... "include" ... "exclude" ... "(" ... "[" ... "id" ... "in" ... ... ... ... "-" ... ... "*" ... "/" ... "+" ... "-" ... "not" ... "like" ... "ilike" ... "exists" ... "does-not-exist" ... "is" ... "between" ... "=" ... ">" ... "<" ... ">=" ... "<=" ... "<>" ... Parsing : VerzamelingId = 241 AND 7415CM IN Postcodes.
if you need the stacktrace of the geoserver, let me know, I will add it than
edit:
putting the statement 7415CM in single quotes does not help:
Could not parse CQL filter list. Encountered "\'7415CM\' IN" at line 1, column 25. Was expecting one of: "not" ... "include" ... "exclude" ... "(" ... "[" ... "id" ... "in" ... ... ... ... "-" ... ... ... ... "*" ... "/" ... "+" ... "-" ... "not" ... "like" ... "ilike" ... "exists" ... "does-not-exist" ... "is" ... "between" ... "=" ... ">" ... "<" ... ">=" ... "<=" ... "<>" ... Parsing : VerzamelingId = 241 AND '7415CM' IN Postcodes.
7415CM
(your where-filter) as a command.