3

こんにちは、Solr 3.6.1 を初めて使用します。インデックスが DIH を使用して MySQL からインポートされる solr を使用して地理空間検索を試みています。クエリから返された緯度と経度のデータ (緯度経度ではない) があることがわかり*:*ます。

問題:地理空間検索を試みても、結果が返されません。検索距離dを 100000 のような非常に大きな値に増やした場合にのみ結果が得られ、返された結果には緯度/経度データが含まれていません。

地理空間データの検索を妨げていたスキーマまたはデータ構成の何かを見逃した可能性はありますか?

また、昇順でソートしたいと思います。クエリの URL の末尾に追加しようと&sort=geodist() ascしましたが、エラーが発生しましunknown query type 'asc'た。助けてくれてありがとう!! :)

地理空間クエリ:

http://127.0.0.1:8080/solr/select?wt=json&q=*:*&start=0&rows=10&fl=*,score&fq={!geofilt pt=41.570015,-71.09061 sfield=latlng d=5}

地理空間クエリの結果:

{"responseHeader":
    {"status":0,
    "QTime":0,
    "params":{"fl":"*,score","start":"0",
    "q":"*:*",
    "wt":"json",
    "fq":"{!geofilt pt=41.570015,-71.09061 sfield=latlng d=5}","rows":"10"}},
    "response":{
        "numFound":0,
        "start":0,
        "maxScore":0.0,
        "docs":[]
    }
}

からのいくつかの結果*.*:

<response>
    <lst name="responseHeader">
    <int name="status">0</int>
    <int name="QTime">517</int>
    <lst name="params">
    <str name="explainOther"/>
    <str name="fl">*,score</str>
    <str name="indent">on</str>
    <str name="start">70000</str>
    <str name="q">*:*</str>
    <str name="hl.fl"/>
    <str name="wt"/>
    <str name="fq"/>
    <str name="rows">100</str>
    <str name="version">2.2</str>
</lst>
</lst>
    <result name="response" numFound="76270" start="70000" maxScore="1.0">
    <doc>
        <float name="score">1.0</float>
        <str name="id">2584854</str>
        <float name="lat">41.570015</float>
        <float name="lng">-71.09061</float>
    </doc>

データインポート

query="select id, lat, lng,
    concat_ws(',', lat, lng) as latlng
    from listings"

スキーマ

<fieldType name="location" class="solr.LatLonType" subFieldSuffix="_coordinate"/>

<field name="latlng" type="location" indexed="true" stored="true" />
<field name="lat" type="float" indexed="true" stored="true" />
<field name="lng" type="float" indexed="true" stored="true" />

<dynamicField name="*_coordinate" type="double" indexed="true" stored="false" multiValued="false" />
4

0 に答える 0