wfssearch mit WFS Layer funktioniert nicht mit dem 'like' Filter

Issue #764 resolved
Karl-Hans Heinemann created an issue

Bei Verwendung dieses Filters erfolgt keine Filterung der Datensätze. Hier der Ausschnitt aus der config.json:

                                                ...
                                                "field": {
                                                        "type": "like",
                                                        "fieldName": "Name",
                                                        "inputLabel": "Name",
                                                        "suggestions" : "false"
                                                    }
                                                ...

Die Anfrage der URL sieht im Browser an der entsprechenden Stelle wie folgt aus:

...
<ogc:PropertyIsLike matchCase="false" wildCard="*" singleChar="%23" escape="!">
<ogc:PropertyName>Name</ogc:PropertyName>
<ogc:Literal>....*</ogc:Literal>
</ogc:PropertyIsLike>
....

Problematisch ist der Parameter escape="!", da dieser nicht ogc - konform ist. Dadurch findet keine Filterung der Datensätze statt. Wird der Parameter im Browser durch escapeChar="!" ersetzt, so erfolgt die Filterung entsprechend der Eingabe.

<ogc:PropertyIsLike matchCase="false" wildCard="*" singleChar="%23" escapeChar="!">

Mit freundlichen Grüßen

Karl-Hans Heinemann

Comments (13)

  1. mkl

    Guten Tag Herr Heinemann,

    vielen Dank für Ihre Nachricht.

    Könnten Sie mir bitte die config.js, die config.json sowie einen Dienst gegen den ich testen kann zur Verfügung stellen?

    Beste Grüße

    Melanie Klamp

  2. mkl

    Hallo Herr Heinemann,
    könnten Sie mir bitte mitteilen welche WFS-Version Sie verwenden?
    Beste Grüße
    Melanie Klamp

  3. Karl-Hans Heinemann reporter

    Hallo Frau Klamp,

    pardon dass ich mich jetzt erst melde. Ich verwende für die Suche den WFS in der Version 1.1.0. Mit der Version 2.0.0 hat die Suche und Filterung überhaupt nicht funktioniert. Als Beispiel aus dem bereitgestellten Zip können Sie die Suche nach den Bebauungsplänen z.B. verwenden, der Dienst steht auch im Internet zur Verfügung, wobei sich die config.js und config.json auf unsere Testumgebung bezieht. Eine weitere Filterung hatte ich durch die bplan.xml Datei vorgenommen, das spielt aber für die Analyse und für den Fehler keine Rolle. In dem Zip sollten Sie alles finden, was Sie zum Nachstellen des Fehlers benötigen.

    Mit freundlichen Grüßen

    Karl-Hans Heinemann

  4. mkl

    Hallo Herr Heinemann,

    haben Sie vielen Dank für Ihre Nachricht. Leider konnte ich keinen Dienst zu dem Layer mit der Id "30034" der Suchinstanz "Bplan Suche Kreis Kleve" online finden.

    Beziehen Sie ihre Dienste hier: rest-services-internet.json?

    Könnten Sie mir bitte noch kurz mitteilen, auf welchen Dienst sich ihre config bezieht.

    Vielen Dank!

    Beste Grüße,

    Melanie Klamp

  5. Karl-Hans Heinemann reporter

    Hallo Frau Klamp,

    in dem Zip File test.zip ist die services-internet.json mit der betreffenden ID hinterlegt. Darauf bezieht sich der WFSSearch bei der Bplan Suche . In dem Fall ist es kein WFS_Dog, sondern ein gewöhnlicher WFS, über den die Suche durchgeführt wird.

    Mit freundlichen Grüßen

    Karl-Hans Heinemann

  6. Dennis Sen

    Hallo Herr Heinemann,

    die übergebene Konfiguration ist leider unvollständig. Es fehlen einige in config.json und config.js verlinkte Dateien, wie z.B. auch die planart.json direkt für den wfsSearch.

    Ich habe mir von der Konfiguration unabhängig einmal das Feature angeschaut. Da die config.json.md gerade auf Bitbucket nicht so schön anzusehen ist, habe ich eine zu HTML kompilierte Fassung an dieses Issue angehängt.

    Dort steht im Kapitel Portalconfig.menu.tool.wfsSearch.searchInstance.requestConfig.likeFilter, wie man den likeFilter so konfiguriert, dass escapeChar statt escape verwendet wird. Das Problem sollte durch Konfiguration auf ihrer Seite schon kurzfristig gelöst werden können.

    Aber sie haben recht, dass im Standard https://portal.ogc.org/files/?artifact_id=8340 escapeChar und nicht escape der richtige Name ist. (Auch, wenn einige Dienste das mit escape implementiert haben und da ihrerseits vom Standard abweichen – deswegen wohl auch der Fehler hier.) Das werde ich so umziehen, dass per Default escapeChar genutzt wird, und dann andersherum die Dienste, die davon abweichen, wie oben beschrieben umkonfiguriert werden müssen. Diese Korrektur ist zwar einerseits ein Bugfix, aber auch ein Breaking Change. Ich werde da noch ein bisschen abstimmen müssen, wie wir das einspielen, damit kein Portal kaputt geht. Die Suche wie oben beschrieben umzukonfigurieren wird dann aber auch weiterhin funktionieren.

    Viele Grüße

  7. Karl-Hans Heinemann reporter

    Guten Morgen Herr Sen,

    vielen Dank für ihre Erläuterung zu dem von uns geschilderten Problem bzgl. Verwendung des ‘like' Filters in WFSSearch.

    Sie hatten auch geschrieben, dass dieser Filter von uns als Workaround so verwendet werden kann, damit der Filter greift. Wie können wir das im Masterportal umsetzen, wenn der Dienst auf ‘escape’ beim GetFeature Request nicht anspricht? In den Diensten haben wir hierfür zunächst keine Möglichkeit zur Umsetzung. Der Dienst berücksichtigt bei unseren Diensten nur ogc - konform ‘escapeChar’.

    Mit freundlichen Grüßen

    Karl-Hans Heinemann

  8. Dennis Sen

    Guten Morgen Herr Heinemann,

    die Konfiguration in der config.json sieht dafür an den requestConfigs folgendermaßen aus:

    ...
      "requestConfig": {
        "layerId": "30034",
        "likeFilter": {
          "wildCard": "*",
          "singleChar": "#",
          "escapeChar": "!"
        },
        ...
    

    Zur Nachverfolgung verlinke ich auch einmal den laufenden Pull Request: https://bitbucket.org/geowerkstatt-hamburg/masterportal/pull-requests/3417

    Die Änderung darauf, dass escapeChar richtigerweise per Default genutzt wird, wird als Bugfix modelliert und ist dann in der nächsten Version verfügbar. Ohne Versionsupdate sollte es mit obiger Konfiguration aber auch jetzt schon klappen.

    Viele Grüße

  9. Karl-Hans Heinemann reporter

    Guten Morgen Herr Sen,

    ich habe die Ergänzung des ‘LikeFilters’ gerade getestet. Funktioniert ausgezeichnet. Es war mir nicht bewußt, dass beliebige Variablennamen wie ‘escapeChar’ in der config.json für den ‘like’ Filter verwendet und aufgeführt werden können. Auch noch mal danke für die schnelle Umsetzung, dass ‘OGC’ konform zukünftig ‘escapeChar’ per Default verwendet wird.

    Mit freundlichen Grüßen

    Karl-Hans Heinemann

  10. Log in to comment