Hi Andrea,
hi Jody,

thanks for that! The "Skip the counting of the numberMatched attribute" did the trick :-) That's what I was looking for. Works great with both GML and JSON format.

My client does not require any "numberXxx" attributes. Nevertheless, with my version 2.22.3, numberMatched is "unknown" and numberReturned is "10" (which is correct).

Carsten


--

Carsten Klein
Lead Software Engineer

DataGis GmbH

Johann-Strauß-Str. 26
70794 Filderstadt
GERMANY

Phone: +49 7158 9490 106
Fax: +49 7158 9490 111

E-Mail: c.kl...@datagis.com
Internet: www.datagis.com <http://www.datagis.com>

Commercial Register: Stuttgart, HRB 225945
Management: Dr. Gunter Hahn, Markus Ruess, Carsten Klein
Hi Jody,
actually... the WFS 2.0 specification leaves out a possibility to return "unknown" in the count numberMatched field, from the schemas:

<xsd:attributeGroupname="StandardResponseParameters">
<xsd:attribute name="timeStamp" type="xsd:dateTime" use="required"/>
<xsd:attribute name="numberMatched" type="wfs:nonNegativeIntegerOrUnknown" use="required"/> <xsd:attribute name="numberReturned" type="xsd:nonNegativeInteger" use="required"/>
<xsd:attribute name="next" type="xsd:anyURI"/>
<xsd:attribute name="previous" type="xsd:anyURI"/>
</xsd:attributeGroup>
<xsd:simpleType name="nonNegativeIntegerOrUnknown">
<xsd:union>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="unknown"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType>
<xsd:restriction base="xsd:nonNegativeInteger"/>
</xsd:simpleType>
</xsd:union>
</xsd:simpleType>

To use it, configure the layer to skip number matched (publishing/wfs):

image.png
I believe this setting is not used often though, not sure how many clients are ready to receive "unknown" rather than a number.

I also see that when setting it, the numberReturned is zero... and it should not be, but I don't know why it's happening.

Regards,

Andrea Aime

==GeoServer Professional Services from the experts!

Visit http://bit.ly/gs-services-us <http://bit.ly/gs-services-us>for more information.==Ing. Andrea Aime @geowolfTechnical Lead

GeoSolutions Groupphone: +39 0584 962313

fax:     +39 0584 1660272

mob:   +39  339 8844549


https://www.geosolutionsgroup.com/ <https://www.geosolutionsgroup.com/>

http://twitter.com/geosolutions_it <http://twitter.com/geosolutions_it>

-------------------------------------------------------


Con riferimento alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 - Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni circostanza inerente alla presente email (il suo contenuto, gli eventuali allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le sarei comunque grato se potesse darmene notizia.This email is intended only for the person or entity to which it is addressed and may contain information that is privileged, confidential or otherwise protected from disclosure. We remind that - as provided by European Regulation 2016/679 “GDPR” - copying, dissemination or use of this e-mail or the information herein by anyone other than the intended recipient is prohibited. If you have received this email by mistake, please notify us immediately by telephone or e-mail


On Mon, Jun 17, 2024 at 8:06 AM Jody Garnett <jody.garn...@gmail.com> wrote:

    It is part of GML specification. I have an idea of doing a count
    estimate for postgis, kind of like the box estimate. It would only
    break the spec a little as long as the answer is higher (until the
    last page when we would know for sure).

    Can you try a different format that does not require count?


    --
    Jody Garnett


    On Sun, Jun 16, 2024 at 10:54 PM Carsten Klein
    <c.kl...@datagis.com> wrote:

        Dear all,

        is there a way to prevent GeoServer from issuing a count(*) on
        a layer's table (using PostGIS) for every GetFeature WFS request?

        Those tables have > 50 million rows. The query itself, which
        is quite simple, is very fast as it's using an index (0.1
        sec). However, including the count(*) performed by GeoServer,
        the overall request time is  ~3 secs.

        Any advise is highly appreciated.

        Carsten

_______________________________________________
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


Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

Reply via email to