11

フィールドを含むSolrスキーマがありlocationます(デフォルトを使用solr.LatLonType):

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

そして、DataImportHandlerを使用してデータを入力しようとしています。現在、私は;SELECTの形式のnvarcharとしての値です。17.74628,-64.70725ただし、Solrフィールドには入力されていません(空のままです)。

locationSolrのフィールドを更新するには、この列をどのタイプと形式にする必要がありますか?

4

2 に答える 2

15

solr.LatLonTypeは多次元タイプです。フィールドタイプは次のように定義できます。

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

「latlng」というフィールド名を使用すると、座標フィールドのスキーマは次のようになります(2次元フィールドタイプsolr.LatLonTypeに使用される「subFieldSuffix」に注意してください)。

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

「latlng_0_coordinate」は緯度、「latlng_1_coordinate」は経度である必要があります。selectステートメントは、「latlng_0_coordinate」と「latlng_1_coordinate」をdoubleとしてロードする必要があります。

于 2011-09-22T21:36:34.813 に答える
3

Solrが緯度と経度を個別に保存するために使用するフィールドを手動で作成しているため、前の回答は機能しますが、その目的のための動的フィールドがあります。

<!-- Type used to index the lat and lon components for the "location" FieldType --> <dynamicField name="*_coordinate" type="tdouble" indexed="true" stored="false" />

フィールド タイプの場所を確認すると、値に接尾辞 _coordinate が使用されていることがわかる場合があります。

<!-- A specialized field for geospatial search. If indexed, this fieldType must not be multivalued. -->

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

それは Solr 4 ベータ版で機能し、Solr 3.6 またはそれ以前から存在していると思います。とにかく、もう1つの解決策です!

お役に立てれば。

于 2012-09-13T02:20:22.083 に答える