5

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に送信しますが、latlngには何も送信されません

さらに、私のschema.xmlには「latlng」についての言及が他にないので、私が見る限り、そこに結合または結合関数があるわけではありません。

だから、私の質問は、latlngには目的があるのか​​、それともコーダーがそれを誤って入れたのかということです。

4

1 に答える 1

5

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

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

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

あなたの例でlatlng_0_coordinateは、緯度フィールドと経度フィールドに使用する必要がありlatlng_1_coordinateます。

次に、空間クエリを使用して、latlngフィールドを使用できます。

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

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

結果として、それはエラーではなく、目的のためにあります。

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

于 2012-09-21T12:27:38.330 に答える