こんにちは、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" />