From 5f21d38df63e066684b39ed9f83f6bde6c37ce42 Mon Sep 17 00:00:00 2001 From: Luca Favatella Date: Wed, 30 Nov 2016 18:05:25 +0000 Subject: [PATCH] Index RPT geospatial fields following upstream MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `RPT` appears to be an improvement over `LatLonType` and is [in Solr >= 4.0.0][1]. [1]: https://github.com/apache/lucene-solr/blob/releases/lucene-solr/6.3.0/solr/CHANGES.txt#L8649 Schema excerpts are mostly taken from Solr 6.3.0: * https://github.com/apache/lucene-solr/blob/releases/lucene-solr/6.3.0/solr/server/solr/configsets/basic_configs/conf/managed-schema#L157 * https://github.com/apache/lucene-solr/blob/releases/lucene-solr/6.3.0/solr/server/solr/configsets/basic_configs/conf/managed-schema#L557-L562 The schema excerpts from Solr 6.3.0 are adapted in order to work with the Solr versions integrated with Riak 2.2.0 and 2.0.7 i.e. respectively Solr 4.10.4 and 4.7.0. The only change involves the distance unit. Distance unit ==== Attribute name ---- In order to support Solr 4.10.4 and 4.7.0, prefer (now [deprecated][2]) attribute `units` over `distanceUnits` introduced in Solr 6. [2]: https://github.com/apache/lucene-solr/commit/8fd247cc0e5fded62a5b349ba82966a0c86bd61e Degrees vs. kilometers ---- Specify unit `degrees` rather than `kilometers` because that is the only one supported in Solr 4.10.4 and 4.7.0. Consequently adapt attribute `maxDistErr`: `maxDistErr="0.001" distanceUnits="kilometers"` can be written roughly as `maxDistErr="0.000009" units="degrees"`. * From [Solr 4.7.0 reference guide][3] wrt `maxDistErr` (BTW this excerpt is the same in Solr 4.10.4 ref guide): > Defines the highest level of detail required for indexed data. If > left blank, the default is one meter – just a bit less than > 0.000009 degrees. This setting is used internally to compute an > appropriate maxLevels (see below). [3]: https://archive.apache.org/dist/lucene/solr/ref-guide/apache-solr-ref-guide-4.7.pdf * See also [Solr schema change from degrees to kilometers][4]; [4]: https://github.com/apache/lucene-solr/commit/8fd247cc0e5fded62a5b349ba82966a0c86bd61e#diff-097da721a526b8f1f57d503942262d68 * The source code computes the [default number of degrees][5] converting 0.001 km (i.e. 1 m) to degrees assuming a [spherical Earth][6] model of radius [6371.0087714 km (Earth mean radius)][7]. * The computation relies on [`spatial4j`][8] [0.4.1][9] `DistanceUtils.dist2Degrees` function. (I did not verify that `0.000009` is the result of that expression.) [5]: https://github.com/apache/lucene-solr/blob/releases/lucene-solr/4.7.0/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/tree/SpatialPrefixTreeFactory.java#L86 [6]: https://github.com/locationtech/spatial4j/blob/spatial4j-0.4.1/src/main/java/com/spatial4j/core/distance/DistanceUtils.java#L480 [7]: https://github.com/locationtech/spatial4j/blob/spatial4j-0.4.1/src/main/java/com/spatial4j/core/distance/DistanceUtils.java#L60 [8]: https://github.com/apache/lucene-solr/blob/releases/lucene-solr/4.7.0/solr/core/ivy.xml#L37 [9]: https://github.com/apache/lucene-solr/blob/releases/lucene-solr/4.7.0/lucene/ivy-versions.properties#L40 --- priv/default_schema.xml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/priv/default_schema.xml b/priv/default_schema.xml index 32058ca6..bddae887 100644 --- a/priv/default_schema.xml +++ b/priv/default_schema.xml @@ -82,6 +82,7 @@ + @@ -407,6 +408,17 @@ --> + + + +