It really looks like you are in for a bit of research and development, both to define the matchAction in ECQL, ensure it is passed to MongoDB, and then process it accordingly.
You may be able to define the match action in SLD with matchAction="Any" and check in a debugger what makes it to MongoDB. -- Jody Garnett On Thu, 25 Jul 2019 at 10:48, Artem Groznykh <[email protected]> wrote: > Hi > > I tried LIKE operator in filter of YLSD and SLD styles > > YSLD: > feature-styles: > - rules: > - filter: ${ "measurements.name" LIKE 'wind%' } > symbolizers: > - point: > size: 16 > symbols: > - mark: > shape: circle > fill-color: '#00F' > > SLD: > <?xml version="1.0" encoding="UTF-8"?> > <StyledLayerDescriptor version="1.0.0" > xsi:schemaLocation="http://www.opengis.net/sld > StyledLayerDescriptor.xsd" > xmlns="http://www.opengis.net/sld" > xmlns:ogc="http://www.opengis.net/ogc" > xmlns:xlink="http://www.w3.org/1999/xlink" > xmlns:xsi=" > http://www.w3.org/2001/XMLSchema-instance"> > <NamedLayer> > <UserStyle> > <FeatureTypeStyle> > <Rule> > <ogc:Filter> > <ogc:PropertyIsLike wildCard="%" singleChar="." escape="\"> > <ogc:PropertyName>measurements.name</ogc:PropertyName> > <ogc:Literal>wind%</ogc:Literal> > </ogc:PropertyIsLike> > </ogc:Filter> > <PointSymbolizer> > <Graphic> > <Mark> > <WellKnownName>circle</WellKnownName> > <Fill> > <CssParameter name="fill">#00F</CssParameter> > </Fill> > </Mark> > <Size>16</Size> > </Graphic> > </PointSymbolizer> > </Rule> > </FeatureTypeStyle> > </UserStyle> > </NamedLayer> > </StyledLayerDescriptor> > > None of them work. > > Nuno Oliveira said > >> On top of Jody answer I will add that this thread is related with this >> one: >> >> http://osgeo-org.1560.x6.nabble.com/CQL-filter-OR-operator-does-not-work-on-attributes-that-are-multiple-on-MongoDB-DataSource-td5408541.html > > > Firstly I thought the same. But CQL filter - "measurements.name" LIKE > 'wind%' - of the layer works (both point-layers are visilbe) > > > <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail> > Без > вирусов. www.avast.ru > <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail> > <#m_-6982968817509685238_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2> > > сб, 20 июл. 2019 г. в 08:10, Jody Garnett <[email protected]>: > >> I think only a few of the filters are set up to work with multiples (say >> in the result of a join), I imagine these could be adapted to work on a >> dataset that has some kind of array type natively... >> It is relatively uncommon to have multiples so not a lot of functions are >> going to be set up to work with this way, so you may need to work on the >> code ... >> >> Can you try a filter that is known to work with multiples just to see if >> MongoDB is setup to consider this idea? There should be some kind of "match >> action" "any" "all" "one" that would be appropriate ... here are the >> geotools docs: >> https://docs.geotools.org/latest/userguide/library/opengis/filter.html#matchaction >> >> Looking at the diagram there it appears that LIKE is a "multi valued >> filter" so the option would be supported if you were doing an XML query. >> I am not sure if ECQL supports this idea so you may have a feature >> request ... >> >> >> >> >> -- >> Jody Garnett >> >> >> On Fri, 19 Jul 2019 at 10:42, Artem Groznykh <[email protected]> >> wrote: >> >>> Hello. >>> >>> I use: >>> >>> - window 7 >>> - mongoDB 3.6 >>> - GeoServer 2.15.2 >>> - mongoDB plugin (for GeoServer 2.15.2) >>> - YSLD plugin (for GeoServer 2.15.2) >>> >>> I've created a collection with data from here >>> <https://docs.geoserver.org/stable/en/user/data/app-schema/mongo-tutorial.html#use-case> >>> (just >>> two records), created 2dsphere index >>> >>> Then I've created a layer and an YSLD style for that layer. >>> >>> When I use simple attributes (that are not multiple) in the filter all >>> is fine: >>> >>> feature-styles: >>> - rules: >>> - filter: ${"name" ILIKE 'station%'} >>> symbolizers: >>> - point: >>> size: 16 >>> symbols: >>> - mark: >>> shape: circle >>> fill-color: '#00F' >>> >>> [image: test_multifields_YSLD.jpg] >>> >>> >>> When I use attributes that are multiple in the filter then it DOES NOT >>> work >>> >>> feature-styles: >>> - rules: >>> - filter: ${ "measurements.name" = 'wind' } >>> symbolizers: >>> - point: >>> size: 16 >>> symbols: >>> - mark: >>> shape: circle >>> fill-color: '#00F' >>> >>> [image: test_multifields_YSLD (1).jpg] >>> >>> >>> Maybe it relates somehow to the bug >>> <https://osgeo-org.atlassian.net/browse/GEOS-9291> that I reported >>> (when OR operator does not work in CQL filter of a layer with multiple >>> attributes) >>> >>> How can I make it work? >>> >>> >>> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail> >>> Без >>> вирусов. www.avast.ru >>> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail> >>> <#m_-6982968817509685238_m_8429073423488944350_m_-1510410678340779583_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2> >>> _______________________________________________ >>> Geoserver-users mailing list >>> >>> Please make sure you read the following two resources before posting to >>> this list: >>> - Earning your support instead of buying it, but Ian Turton: >>> http://www.ianturton.com/talks/foss4g.html#/ >>> - The GeoServer user list posting guidelines: >>> http://geoserver.org/comm/userlist-guidelines.html >>> >>> If you want to request a feature or an improvement, also see this: >>> https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer >>> >>> >>> [email protected] >>> https://lists.sourceforge.net/lists/listinfo/geoserver-users >>> >>
_______________________________________________ Geoserver-users mailing list Please make sure you read the following two resources before posting to this list: - Earning your support instead of buying it, but Ian Turton: http://www.ianturton.com/talks/foss4g.html#/ - The GeoServer user list posting guidelines: http://geoserver.org/comm/userlist-guidelines.html If you want to request a feature or an improvement, also see this: https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer [email protected] https://lists.sourceforge.net/lists/listinfo/geoserver-users
