[Mapbender-users] Simple Search with extent

Preuß, Sylvia Sylvia.Preuss at obk.de
Wed Jul 1 02:25:34 PDT 2020


Hello,

I added attribute „location“ in my searchtable and schema.xml
http://172.20.200.23:8983/solr/core_internet_test/select?wt=json&indent=true&q=*:*&fq=location:[50.672,6.9 TO 51.27,7.7]
I get 50 hits what's supposed tob e.

An entry in location looks like: 51.0810654205018,7.36311231924596

schema.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<schema name="core_internet_test" version="1.5">

              <!-- FIELDS -->
    <field indexed="true" multiValued="false" name="gid" required="true" stored="true" type="int"/>
    <field indexed="true" multiValued="true" name="text" required="true" stored="false" type="text"/>
    <field indexed="true" multiValued="false" name="label" required="true" stored="true" type="string"/>
    <field indexed="false" multiValued="false" name="the_geom" required="true" stored="true" type="string"/>
    <field indexed="true" multiValued="false" name="location" required="true" stored="true" type="string"/>
    <uniqueKey>gid</uniqueKey>

              <!-- FIELD TYPES -->
    <fieldType class="solr.TrieIntField" name="int" positionIncrementGap="0" precisionStep="0"/>

    <fieldType class="solr.StrField" name="string" sortMissingLast="true"/>
    <fieldType class="solr.TextField" multiValued="true" name="text" positionIncrementGap="100">
    <fieldType name="location" class="solr.LatLonPointSpatialField" docValues="true"/>

     <analyzer type="index">
<!--<tokenizer class="solr.WhitespaceTokenizerFactory"/>-->
            <tokenizer class="solr.StandardTokenizerFactory"/>
            <filter class="solr.LowerCaseFilterFactory"/>
            <filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
        </analyzer>
        <analyzer type="query">
            <tokenizer class="solr.StandardTokenizerFactory"/>
            <filter class="solr.LowerCaseFilterFactory"/>
        </analyzer>
    </fieldType>
</schema>

If I change fq latitude I get different hits, but for longitude it’s always the same result. It seems like an alphabetical filter instead of arbitrary rectangle.
I had error message concerning      <fieldType name="location" class="solr.LatLonPointSpatialField" docValues="true"/> but I can’t reproduce it again.
It seems like class solr.LatLonPointSpatialField is not analysed.

Maybe a library is missing in solrconfig.xml?

<?xml version="1.0" encoding="UTF-8"?>
<config>
    <luceneMatchVersion>5.2.0</luceneMatchVersion>

    <dataDir>${solr.data.dir:}</dataDir>

    <schemaFactory class="ClassicIndexSchemaFactory" />
    <updateHandler class="solr.DirectUpdateHandler2" />

    <requestHandler name="/select" class="solr.SearchHandler">
        <!--
            defaults    : Defaults Einstellung die überschrieben werden kann.
            invariants  : Defaults Einstellung die NICHT überschrieben werden kann.
            appends     : Wird nicht überschrieben sondern angehängt.
        -->
        <lst name="defaults">
            <str name="echoParams">explicit</str>
            <int name="rows">10</int>
            <str name="df">text</str>
                                           <str name="q.op">AND</str>
                                           <str name="wt">json</str>
            <str name="sort">label asc</str>
        </lst>
    </requestHandler>

    <!--
        Der UpdateRequestHandler wird dazu benutzt, Dokumente an Solr zu senden
   ACHTUNG rausnehmen, wenn der Server oeffentlich ist
    -->
    <requestHandler name="/update" class="solr.UpdateRequestHandler"  />

    <!--
        Definition wie der Rückgabewert ausgegeben werden soll
    -->
    <queryResponseWriter name="json" class="solr.JSONResponseWriter">
        <str name="content-type">text/plain; charset=UTF-8</str>
    </queryResponseWriter>

<!-- Benötigte Java Bibliothek laden -->
    <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-dataimporthandler-.*\.jar" />

    <!-- RequestHandler einrichten, und auf eine Konfigurationsdatei verweisen.
         Dateiname kann frei vergeben werden.-->
    <requestHandler name="/dataimport" class="solr.DataImportHandler">
        <lst name="defaults">
            <str name="config">data-config.xml</str>
        </lst>
    </requestHandler>


</config>

Regards, Sylvia

Hallo,

ich habe die Spalte „location“ in meiner Solr-Tabelle und im schema.xml angehängt
http://172.20.200.23:8983/solr/core_internet_test/select?wt=json&indent=true&q=*:*&fq=location:[50.672,6.9 TO 51.27,7.7]
Ergibt 50 Treffer, was richtig ist.

Beispiel für einen Wert  in der Spalte location: 51.0810654205018,7.36311231924596

schema.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<schema name="core_internet_test" version="1.5">

              <!-- FIELDS -->
    <field indexed="true" multiValued="false" name="gid" required="true" stored="true" type="int"/>
    <field indexed="true" multiValued="true" name="text" required="true" stored="false" type="text"/>
    <field indexed="true" multiValued="false" name="label" required="true" stored="true" type="string"/>
    <field indexed="false" multiValued="false" name="the_geom" required="true" stored="true" type="string"/>
    <field indexed="true" multiValued="false" name="location" required="true" stored="true" type="string"/>
    <uniqueKey>gid</uniqueKey>

              <!-- FIELD TYPES -->
    <fieldType class="solr.TrieIntField" name="int" positionIncrementGap="0" precisionStep="0"/>

    <fieldType class="solr.StrField" name="string" sortMissingLast="true"/>
    <fieldType class="solr.TextField" multiValued="true" name="text" positionIncrementGap="100">
    <fieldType name="location" class="solr.LatLonPointSpatialField" docValues="true"/>

     <analyzer type="index">
<!--<tokenizer class="solr.WhitespaceTokenizerFactory"/>-->
            <tokenizer class="solr.StandardTokenizerFactory"/>
            <filter class="solr.LowerCaseFilterFactory"/>
            <filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
        </analyzer>
        <analyzer type="query">
            <tokenizer class="solr.StandardTokenizerFactory"/>
            <filter class="solr.LowerCaseFilterFactory"/>
        </analyzer>
    </fieldType>
</schema>

Wenn ich in meinem Aufruf fq die Breite (Nordwert) ändere, ändert sich auch die Trefferanzahl.
Wenn ich die Länge (Ostwert) ändere, ändert sich die Trefferanzahl nicht.
Die Auswertung scheint nur einen alphabetischen Filter zu nutzen anstatt des in der Solr-Doku (https://lucene.apache.org/solr/guide/8_4/spatial-search.html) beschriebenen „arbitrary rectangle.“
Ich bekam Fehlermeldung beim Laden des Schemas in Bezug auf <fieldType name="location" class="solr.LatLonPointSpatialField" docValues="true"/> , aber leider kann ich diese Meldung nicht mehr produzieren
Sinngemäß konnte „class solr.LatLonPointSpatialField“ nicht ausgewertet werden.

Fehlt hier eine Bibliothek z. B. in solrconfig.xml?

<?xml version="1.0" encoding="UTF-8"?>
<config>
    <luceneMatchVersion>5.2.0</luceneMatchVersion>

    <dataDir>${solr.data.dir:}</dataDir>

    <schemaFactory class="ClassicIndexSchemaFactory" />
    <updateHandler class="solr.DirectUpdateHandler2" />

    <requestHandler name="/select" class="solr.SearchHandler">
        <!--
            defaults    : Defaults Einstellung die überschrieben werden kann.
            invariants  : Defaults Einstellung die NICHT überschrieben werden kann.
            appends     : Wird nicht überschrieben sondern angehängt.
        -->
        <lst name="defaults">
            <str name="echoParams">explicit</str>
            <int name="rows">10</int>
            <str name="df">text</str>
                                           <str name="q.op">AND</str>
                                           <str name="wt">json</str>
            <str name="sort">label asc</str>
        </lst>
    </requestHandler>

    <!--
        Der UpdateRequestHandler wird dazu benutzt, Dokumente an Solr zu senden
   ACHTUNG rausnehmen, wenn der Server oeffentlich ist
    -->
    <requestHandler name="/update" class="solr.UpdateRequestHandler"  />

    <!--
        Definition wie der Rückgabewert ausgegeben werden soll
    -->
    <queryResponseWriter name="json" class="solr.JSONResponseWriter">
        <str name="content-type">text/plain; charset=UTF-8</str>
    </queryResponseWriter>

<!-- Benötigte Java Bibliothek laden -->
    <lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-dataimporthandler-.*\.jar" />

    <!-- RequestHandler einrichten, und auf eine Konfigurationsdatei verweisen.
         Dateiname kann frei vergeben werden.-->
    <requestHandler name="/dataimport" class="solr.DataImportHandler">
        <lst name="defaults">
            <str name="config">data-config.xml</str>
        </lst>
    </requestHandler>


</config>

Viele Grüße Sylvia



-----Ursprüngliche Nachricht-----
Von: Astrid Emde (WhereGroup) [mailto:astrid.emde at wheregroup.com]
Gesendet: Mittwoch, 1. Juli 2020 11:21
An: Preuß, Sylvia
Betreff: Re: [Mapbender-users] Simple Search with extent

Mapbender User List <mapbender_users at lists.osgeo.org>


Am 2020-06-19 12:31, schrieb Astrid Emde (WhereGroup):
> Hello Sylivia,
>
> you would have to add a spatial field to your solr configuration -
> f.e. BBoxField
>
> Then you could add the filter in the request in the configuration of
> Mapbender.
>
> You find the documentation here
>
> https://lucene.apache.org/solr/guide/8_4/spatial-search.html
>
> Should work, but I did not try it yet.
>
> Astrid
>
> Am 2020-06-19 12:04, schrieb Preuß:
>> Hello,
>>
>> is there a parameter like bbox or minx, miny, maxx, maxy to add on the
>> QueryURL?
>>
>> I would like to use a smaller extent than in the original solr - data.
>>
>>
>> Regards Sylvia
>> -------------------------
>>
>> Der E-Mail-Dienst des Oberbergischen Kreises dient ausschließlich der
>> dienstlichen Kommunikation.
>> Senden Sie deshalb keine E-Mails privaten Inhalts an E-Mail-Adressen
>> des Oberbergischen Kreises.
>> Es wird darauf hingewiesen, dass neben der Person, an die Ihre E-Mail
>> gerichtet ist, auch deren Vertretung im Amt einen unmittelbaren
>> Zugriff auf Ihre Nachricht hat. Für Berufsgeheimnisträger und
>> besondere Funktionsträger gelten abweichende Regelungen.
>> Es wird außerdem darauf hingewiesen, dass die Kommunikation per
>> E-Mail ohne Authentifizierung und Verschlüsselung unsicher ist, da
>> für unberechtigte Dritte grundsätzlich die Möglichkeit der
>> Kenntnisnahme und Manipulation besteht.
>> Es wird deshalb keine Verantwortung für den Inhalt dieser Nachricht
>> übernommen, da eine Manipulation nicht ausgeschlossen werden kann.
>> Obwohl alle angemessenen Vorkehrungen getroffen wurden, um
>> sicherzustellen, dass Anlagen dieser E-Mail virusgeprüft sind, wird
>> empfohlen, anhängende Dateien vor dem Öffnen durch Ihr eigenes
>> Virus-Programm zu prüfen, da keinerlei Haftung für Schäden
>> übernommen wird, die infolge etwaiger Software-Viren entstehen
>> könnten.
>> Der Inhalt dieser E-Mail ist ausschließlich für die bezeichnete
>> Person bestimmt. Wenn Sie nicht der vorgesehene Adressat dieser E-Mail
>> oder dessen Vertretung sein sollten, beachten Sie bitte, dass jede
>> Form der Kenntnisnahme, Veröffentlichung, Vervielfältigung oder
>> Weitergabe des Inhalts dieser E-Mail unzulässig ist. In diesem Fall
>> wird darum gebeten, sich mit der absendenden Person der E-Mail in
>> Verbindung zu setzen.
>> -------------------------
>> _______________________________________________
>> Mapbender_users mailing list
>> Mapbender_users at lists.osgeo.org
>> https://lists.osgeo.org/mailman/listinfo/mapbender_users
>
> --
> Mit freundlichen Grüßen
>
> Astrid Emde
> GIS-Consultant
>
>  -----------------------------------
>  Aufwind durch Wissen!
>  Jetzt neu: Webinare und Online-Schulungen
>  bei der www.foss-academy.com
>  -----------------------------------
>
>   Astrid Emde
>   WhereGroup GmbH
>   Eifelstraße 7
>   53119 Bonn
>   Germany
>
>   Fon: +49(0)228 90 90 38 - 22
>   Fax: +49(0)228 90 90 38 - 11
>
>   astrid.emde at wheregroup.com
>   www.wheregroup.com
>
>   Folgen Sie der WhereGroup auf twitter:
> http://twitter.com/WhereGroup_com
>
> Geschäftsführer:
> Olaf Knopp, Peter Stamm
> Amtsgericht Bonn, HRB 9885
> -------------------------------
> _______________________________________________
> Mapbender_users mailing list
> Mapbender_users at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/mapbender_users
________________________________

Der E-Mail-Dienst des Oberbergischen Kreises dient ausschließlich der dienstlichen Kommunikation.
Senden Sie deshalb keine E-Mails privaten Inhalts an E-Mail-Adressen des Oberbergischen Kreises.
Es wird darauf hingewiesen, dass neben der Person, an die Ihre E-Mail gerichtet ist, auch deren Vertretung im Amt einen unmittelbaren Zugriff auf Ihre Nachricht hat. Für Berufsgeheimnisträger und besondere Funktionsträger gelten abweichende Regelungen.
Es wird außerdem darauf hingewiesen, dass die Kommunikation per E-Mail ohne Authentifizierung und Verschlüsselung unsicher ist, da für unberechtigte Dritte grundsätzlich die Möglichkeit der Kenntnisnahme und Manipulation besteht.
Es wird deshalb keine Verantwortung für den Inhalt dieser Nachricht übernommen, da eine Manipulation nicht ausgeschlossen werden kann.
Obwohl alle angemessenen Vorkehrungen getroffen wurden, um sicherzustellen, dass Anlagen dieser E-Mail virusgeprüft sind, wird empfohlen, anhängende Dateien vor dem Öffnen durch Ihr eigenes Virus-Programm zu prüfen, da keinerlei Haftung für Schäden übernommen wird, die infolge etwaiger Software-Viren entstehen könnten.
Der Inhalt dieser E-Mail ist ausschließlich für die bezeichnete Person bestimmt. Wenn Sie nicht der vorgesehene Adressat dieser E-Mail oder dessen Vertretung sein sollten, beachten Sie bitte, dass jede Form der Kenntnisnahme, Veröffentlichung, Vervielfältigung oder Weitergabe des Inhalts dieser E-Mail unzulässig ist. In diesem Fall wird darum gebeten, sich mit der absendenden Person der E-Mail in Verbindung zu setzen.
________________________________


More information about the Mapbender_users mailing list