2012-09-21 24 views
5

Solrのスキーマを開発するために第三者のコーダーに支払ったが、私は自分自身でより多くの質問をしている。Solrで座標を保存する正しい方法

<field name="latlng" type="location" indexed="true" stored="false" /> 
<field name="latlng_0_coordinate" type="double" indexed="true" stored="false" /> 
<field name="latlng_1_coordinate" type="double" indexed="true" stored="false" /> 

私のサイトには、JSONを経由して提出するlat_lng_0_coordinateとlatlng_1_coordinate するのではなく、何もを緯度と経度に提出ません取得します。私のスキーマに、私は、これは持っているので、

目的は、空間検索を行うことです。

また、schema.xmlには「latlng」という言葉はありません。そのため、そこには結合機能や結合機能はありません。

私の質問は、latlngは目的を持っているのか、コーダーに間違いを付けさせるのでしょうか?

答えて

5

latlngフィールドタイプはロケーションとして定義されます。ロケーションフィールドの定義は次のとおりです。

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

接尾辞_coordinateの動的フィールドを作成する必要があります。

例では、latitudeフィールドにはlatlng_0_coordinateを使用し、経度フィールドにはlatlng_1_coordinateを使用します。

空間クエリを使用すると、latlngフィールドを使用できます。

たとえば、指定されたポイントで5km以内の最も近い場所を見つけるには、次のクエリを使用します。 41.431、28.431は、私が書いたランダムな場所です。

{!geofilt sfield=latlng}&pt=41.431,28.431&d=5 

この結果、エラーではありません。目的のためにあります。

は、Solrのドキュメントでも参照してください:https://wiki.apache.org/solr/SpatialSearch#QuickStart優れ

+0

、Dのパラメータ値はキロにあるであろうということを述べているparvin、@あなた –

+0

に感謝します? 私はいくつかの場所で、それはマイルであることを読む。 – NamingException

関連する問題