From 05237cf80ff0703f34b2b3076923118fa8d42943 Mon Sep 17 00:00:00 2001 From: Grant Ingersoll Date: Thu, 24 Dec 2009 13:03:22 +0000 Subject: [PATCH] SOLR-1132: Added support for poly fields git-svn-id: https://svn.apache.org/repos/asf/lucene/solr/trunk@893746 13f79535-47bb-0310-9956-ffa450edef68 --- CHANGES.txt | 3 + example/exampledocs/hd.xml | 3 + example/exampledocs/ipod_other.xml | 4 + example/exampledocs/ipod_video.xml | 2 + example/exampledocs/mem.xml | 6 + example/exampledocs/monitor.xml | 2 + example/exampledocs/monitor2.xml | 2 + example/exampledocs/mp500.xml | 2 + example/exampledocs/sd500.xml | 2 + example/exampledocs/vidcard.xml | 3 + example/solr/conf/schema.xml | 9 +- .../org/apache/solr/common/SolrException.java | 2 +- .../solr/schema/CoordinateFieldType.java | 138 +++++++++ .../org/apache/solr/schema/FieldType.java | 209 +++++++++++-- .../org/apache/solr/schema/IndexSchema.java | 173 ++++++++--- .../org/apache/solr/schema/PointType.java | 276 ++++++++++++++++++ .../org/apache/solr/schema/SchemaAware.java | 39 +++ .../org/apache/solr/schema/SchemaField.java | 44 ++- .../org/apache/solr/schema/TextField.java | 202 +++++++++++++ .../solr/search/FieldQParserPlugin.java | 97 +----- .../apache/solr/search/MultiValueSource.java | 29 ++ .../apache/solr/search/SolrQueryParser.java | 7 + .../solr/search/ToMultiValueSource.java | 164 +++++++++++ .../apache/solr/search/ValueSourceParser.java | 103 +++++-- .../solr/search/function/DocValues.java | 9 + .../function/distance/DistanceUtils.java | 43 ++- .../function/distance/HaversineFunction.java | 93 +++--- .../distance/SquaredEuclideanFunction.java | 18 +- .../distance/VectorDistanceFunction.java | 122 ++++---- .../apache/solr/update/DocumentBuilder.java | 74 +++-- .../solr/util/AbstractSolrTestCase.java | 11 + .../org/apache/solr/schema/PolyFieldTest.java | 196 +++++++++++++ .../distance/DistanceFunctionTest.java | 32 +- .../solr/update/DocumentBuilderTest.java | 14 + src/test/test-files/solr/conf/schema.xml | 15 + src/test/test-files/solr/conf/schema11.xml | 10 +- 36 files changed, 1817 insertions(+), 341 deletions(-) create mode 100644 src/java/org/apache/solr/schema/CoordinateFieldType.java create mode 100644 src/java/org/apache/solr/schema/PointType.java create mode 100644 src/java/org/apache/solr/schema/SchemaAware.java create mode 100644 src/java/org/apache/solr/search/MultiValueSource.java create mode 100644 src/java/org/apache/solr/search/ToMultiValueSource.java create mode 100644 src/test/org/apache/solr/schema/PolyFieldTest.java diff --git a/CHANGES.txt b/CHANGES.txt index 6c4c431e40f..db99c8955c8 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -74,6 +74,9 @@ New Features * SOLR-1653: Add PatternReplaceCharFilter (koji) +* SOLR-1131: FieldTypes can now output multiple Fields per Type and still be searched. This can be handy for hiding the details of a particular + implementation such as in the spatial case. (Chris Mattmann, shalin, noble, gsingers, yonik) + Optimizations ---------------------- diff --git a/example/exampledocs/hd.xml b/example/exampledocs/hd.xml index 90a87f0ad74..470b2e71697 100644 --- a/example/exampledocs/hd.xml +++ b/example/exampledocs/hd.xml @@ -28,6 +28,7 @@ 6 true 2006-02-13T15:26:37Z + 45.17614,-93.87341 @@ -42,6 +43,8 @@ 350 6 true + + 45.17614,-93.87341 2006-02-13T15:26:37Z diff --git a/example/exampledocs/ipod_other.xml b/example/exampledocs/ipod_other.xml index a1924d33b0e..8a1dd5d300a 100644 --- a/example/exampledocs/ipod_other.xml +++ b/example/exampledocs/ipod_other.xml @@ -28,6 +28,8 @@ 19.95 1 false + + 45.17614,-93.87341 2005-08-01T16:30:25Z @@ -42,6 +44,8 @@ 11.50 1 false + + 37.7752,-122.4232 2006-02-14T23:55:59Z diff --git a/example/exampledocs/ipod_video.xml b/example/exampledocs/ipod_video.xml index 9b155f5f69c..8f5dc60f5b2 100644 --- a/example/exampledocs/ipod_video.xml +++ b/example/exampledocs/ipod_video.xml @@ -32,5 +32,7 @@ 399.00 10 true + + 37.7752,-122.4232 2005-10-12T08:00:00Z diff --git a/example/exampledocs/mem.xml b/example/exampledocs/mem.xml index 13eb9e351d3..179a56cda70 100644 --- a/example/exampledocs/mem.xml +++ b/example/exampledocs/mem.xml @@ -26,6 +26,8 @@ 185 5 true + + 37.7752,-122.4232 2006-02-13T15:26:37Z @@ -38,6 +40,8 @@ 74.99 7 true + + 37.7752,-122.4232 2006-02-13T15:26:37Z @@ -51,6 +55,8 @@ 0 true + + 45.17614,-93.87341 2006-02-13T15:26:37Z diff --git a/example/exampledocs/monitor.xml b/example/exampledocs/monitor.xml index ddb523f720d..99bed66f62d 100644 --- a/example/exampledocs/monitor.xml +++ b/example/exampledocs/monitor.xml @@ -27,5 +27,7 @@ 2199 6 true + + 45.17614,-93.87341 diff --git a/example/exampledocs/monitor2.xml b/example/exampledocs/monitor2.xml index c69c4a1688f..64e33a45f30 100644 --- a/example/exampledocs/monitor2.xml +++ b/example/exampledocs/monitor2.xml @@ -26,5 +26,7 @@ 279.95 6 true + + 45.17614,-93.87341 diff --git a/example/exampledocs/mp500.xml b/example/exampledocs/mp500.xml index 4e6812670c0..2a914077a37 100644 --- a/example/exampledocs/mp500.xml +++ b/example/exampledocs/mp500.xml @@ -35,5 +35,7 @@ 179.99 6 true + + 45.17614,-93.87341 diff --git a/example/exampledocs/sd500.xml b/example/exampledocs/sd500.xml index f04f7b7061d..fde6f492230 100644 --- a/example/exampledocs/sd500.xml +++ b/example/exampledocs/sd500.xml @@ -31,4 +31,6 @@ 7 true 2006-02-13T15:26:37Z + + 45.17614,-93.87341 diff --git a/example/exampledocs/vidcard.xml b/example/exampledocs/vidcard.xml index 4aa86983064..9cd3fd1c79c 100644 --- a/example/exampledocs/vidcard.xml +++ b/example/exampledocs/vidcard.xml @@ -30,6 +30,7 @@ 16 479.95 7 + 40.7143,-74.006 false 2006-02-13T15:26:37Z/DAY @@ -50,5 +51,7 @@ 7 false 2006-02-13T15:26:37Z/DAY + + 40.7143,-74.006 diff --git a/example/solr/conf/schema.xml b/example/solr/conf/schema.xml index 82f4ba9a804..59808bbc6d9 100755 --- a/example/solr/conf/schema.xml +++ b/example/solr/conf/schema.xml @@ -394,7 +394,12 @@ - + + + + @@ -440,6 +445,8 @@ + + + + + + @@ -392,6 +398,15 @@ + + + + + + + + + diff --git a/src/test/test-files/solr/conf/schema11.xml b/src/test/test-files/solr/conf/schema11.xml index 1a1cc78268c..e9514981976 100755 --- a/src/test/test-files/solr/conf/schema11.xml +++ b/src/test/test-files/solr/conf/schema11.xml @@ -251,6 +251,10 @@ + + + + @@ -275,7 +279,11 @@ - + + + + +