You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucenenet.apache.org by sy...@apache.org on 2012/11/04 12:40:21 UTC
svn commit: r1405531 - in /lucene.net/trunk: src/contrib/Spatial/Queries/
test/contrib/Spatial/ test/contrib/Spatial/Prefix/
Author: synhershko
Date: Sun Nov 4 11:40:21 2012
New Revision: 1405531
URL: http://svn.apache.org/viewvc?rev=1405531&view=rev
Log:
Partial port of LUCENE-4444 , plus one passing test of using LineString
Added:
lucene.net/trunk/test/contrib/Spatial/Prefix/NtsPolygonTest.cs
Modified:
lucene.net/trunk/src/contrib/Spatial/Queries/SpatialArgsParser.cs
lucene.net/trunk/test/contrib/Spatial/Contrib.Spatial.Tests.csproj
lucene.net/trunk/test/contrib/Spatial/PortedSolr3Test.cs
lucene.net/trunk/test/contrib/Spatial/Prefix/TestRecursivePrefixTreeStrategy.cs
lucene.net/trunk/test/contrib/Spatial/StrategyTestCase.cs
Modified: lucene.net/trunk/src/contrib/Spatial/Queries/SpatialArgsParser.cs
URL: http://svn.apache.org/viewvc/lucene.net/trunk/src/contrib/Spatial/Queries/SpatialArgsParser.cs?rev=1405531&r1=1405530&r2=1405531&view=diff
==============================================================================
--- lucene.net/trunk/src/contrib/Spatial/Queries/SpatialArgsParser.cs (original)
+++ lucene.net/trunk/src/contrib/Spatial/Queries/SpatialArgsParser.cs Sun Nov 4 11:40:21 2012
@@ -74,7 +74,7 @@ namespace Lucene.Net.Spatial.Queries
throw new ArgumentException("missing body : " + v);
}
- Shape shape = new ShapeReadWriter(ctx).ReadShape(body);
+ var shape = ctx.ReadShape(body);
var args = new SpatialArgs(op, shape);
if (v.Length > (edx + 1))
Modified: lucene.net/trunk/test/contrib/Spatial/Contrib.Spatial.Tests.csproj
URL: http://svn.apache.org/viewvc/lucene.net/trunk/test/contrib/Spatial/Contrib.Spatial.Tests.csproj?rev=1405531&r1=1405530&r2=1405531&view=diff
==============================================================================
--- lucene.net/trunk/test/contrib/Spatial/Contrib.Spatial.Tests.csproj (original)
+++ lucene.net/trunk/test/contrib/Spatial/Contrib.Spatial.Tests.csproj Sun Nov 4 11:40:21 2012
@@ -123,6 +123,7 @@
<Compile Include="Compatibility\TermsFilterTest.cs" />
<Compile Include="DistanceStrategyTest.cs" />
<Compile Include="PortedSolr3Test.cs" />
+ <Compile Include="Prefix\NtsPolygonTest.cs" />
<Compile Include="Prefix\TestRecursivePrefixTreeStrategy.cs" />
<Compile Include="Prefix\TestTermQueryPrefixGridStrategy.cs" />
<Compile Include="Prefix\Tree\SpatialPrefixTreeTest.cs" />
Modified: lucene.net/trunk/test/contrib/Spatial/PortedSolr3Test.cs
URL: http://svn.apache.org/viewvc/lucene.net/trunk/test/contrib/Spatial/PortedSolr3Test.cs?rev=1405531&r1=1405530&r2=1405531&view=diff
==============================================================================
--- lucene.net/trunk/test/contrib/Spatial/PortedSolr3Test.cs (original)
+++ lucene.net/trunk/test/contrib/Spatial/PortedSolr3Test.cs Sun Nov 4 11:40:21 2012
@@ -158,7 +158,7 @@ namespace Lucene.Net.Contrib.Spatial.Tes
private void _checkHits(bool bbox, String ptStr, double distKM, int assertNumFound, params int[] assertIds)
{
SpatialOperation op = SpatialOperation.Intersects;
- Point pt = (Point) new ShapeReadWriter(ctx).ReadShape(ptStr);
+ var pt = (Point) ctx.ReadShape(ptStr);
double distDEG = DistanceUtils.Dist2Degrees(distKM, DistanceUtils.EARTH_MEAN_RADIUS_KM);
Shape shape = ctx.MakeCircle(pt, distDEG);
if (bbox)
Added: lucene.net/trunk/test/contrib/Spatial/Prefix/NtsPolygonTest.cs
URL: http://svn.apache.org/viewvc/lucene.net/trunk/test/contrib/Spatial/Prefix/NtsPolygonTest.cs?rev=1405531&view=auto
==============================================================================
--- lucene.net/trunk/test/contrib/Spatial/Prefix/NtsPolygonTest.cs (added)
+++ lucene.net/trunk/test/contrib/Spatial/Prefix/NtsPolygonTest.cs Sun Nov 4 11:40:21 2012
@@ -0,0 +1,54 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using Lucene.Net.Documents;
+using Lucene.Net.Spatial.Prefix;
+using Lucene.Net.Spatial.Prefix.Tree;
+using Lucene.Net.Spatial.Queries;
+using Lucene.Net.Support;
+using NUnit.Framework;
+using Spatial4n.Core.Context;
+using Spatial4n.Core.Context.Nts;
+using Spatial4n.Core.Io.Samples;
+using Spatial4n.Core.Shapes;
+
+namespace Lucene.Net.Contrib.Spatial.Test.Prefix
+{
+ public class NtsPolygonTest : StrategyTestCase
+ {
+ private static readonly double LUCENE_4464_distErrPct = SpatialArgs.DEFAULT_DISTERRPCT;//DEFAULT 2.5%
+
+ public NtsPolygonTest()
+ {
+ //var args = new HashMap<String, String> {{"spatialContextFactory", "com.spatial4j.core.context.jts.JtsSpatialContextFactory"}};
+ //SpatialContextFactory.MakeSpatialContext(args, getClass().getClassLoader());
+ ctx = new NtsSpatialContext(true);
+
+ var grid = new GeohashPrefixTree(ctx, 11);//< 1 meter == 11 maxLevels
+ this.strategy = new RecursivePrefixTreeStrategy(grid, GetType().Name);
+ ((RecursivePrefixTreeStrategy)this.strategy).DistErrPct = LUCENE_4464_distErrPct;//1% radius (small!)
+ }
+
+ [Test]
+ public void testLineStrings()
+ {
+ var sdIterator = new List<SampleData>
+ {
+ new SampleData("LineB\tLineB\tLINESTRING (0 1, 1 1, 2 1)"),
+ new SampleData("LineC\tLineC\tLINESTRING (0 1, 0.8 0.8, 2 1)"),
+ new SampleData("LineD\tLineD\tLINESTRING (0 1, 0.5 1, 2 1)")
+ };
+
+ ctx = NtsSpatialContext.GEO;
+ List<Document> testDocuments = getDocumentsNts(sdIterator.GetEnumerator());
+ addDocumentsAndCommit(testDocuments);
+ verifyDocumentsIndexed(testDocuments.Count);
+
+ var lineA = ctx.ReadShape("LINESTRING (0 0, 1 1, 1 2)");
+ var args = new SpatialArgs(SpatialOperation.Intersects, lineA);
+ var got = executeQuery(strategy.MakeQuery(args), 100);
+ assertEquals(3, got.numFound); //found all 3
+ }
+ }
+}
Modified: lucene.net/trunk/test/contrib/Spatial/Prefix/TestRecursivePrefixTreeStrategy.cs
URL: http://svn.apache.org/viewvc/lucene.net/trunk/test/contrib/Spatial/Prefix/TestRecursivePrefixTreeStrategy.cs?rev=1405531&r1=1405530&r2=1405531&view=diff
==============================================================================
--- lucene.net/trunk/test/contrib/Spatial/Prefix/TestRecursivePrefixTreeStrategy.cs (original)
+++ lucene.net/trunk/test/contrib/Spatial/Prefix/TestRecursivePrefixTreeStrategy.cs Sun Nov 4 11:40:21 2012
@@ -17,7 +17,6 @@
using System;
using System.Collections.Generic;
-using Lucene.Net.Documents;
using Lucene.Net.Spatial.Prefix;
using Lucene.Net.Spatial.Prefix.Tree;
using Lucene.Net.Spatial.Queries;
@@ -25,7 +24,6 @@ using NUnit.Framework;
using Spatial4n.Core.Context;
using Spatial4n.Core.Distance;
using Spatial4n.Core.Shapes;
-using Spatial4n.Core.Shapes.Impl;
using Spatial4n.Core.Util;
namespace Lucene.Net.Contrib.Spatial.Test.Prefix
Modified: lucene.net/trunk/test/contrib/Spatial/StrategyTestCase.cs
URL: http://svn.apache.org/viewvc/lucene.net/trunk/test/contrib/Spatial/StrategyTestCase.cs?rev=1405531&r1=1405530&r2=1405531&view=diff
==============================================================================
--- lucene.net/trunk/test/contrib/Spatial/StrategyTestCase.cs (original)
+++ lucene.net/trunk/test/contrib/Spatial/StrategyTestCase.cs Sun Nov 4 11:40:21 2012
@@ -28,6 +28,7 @@ using Lucene.Net.Spatial.Util;
using Lucene.Net.Util;
using NUnit.Framework;
using Spatial4n.Core.Context;
+using Spatial4n.Core.Context.Nts;
using Spatial4n.Core.Io;
using Spatial4n.Core.Io.Samples;
using Spatial4n.Core.Shapes;
@@ -84,7 +85,11 @@ namespace Lucene.Net.Contrib.Spatial.Tes
protected List<Document> getDocuments(String testDataFile)
{
- IEnumerator<SampleData> sampleData = getSampleData(testDataFile);
+ return getDocuments(getSampleData(testDataFile));
+ }
+
+ protected List<Document> getDocuments(IEnumerator<SampleData> sampleData)
+ {
var documents = new List<Document>();
while (sampleData.MoveNext())
{
@@ -110,7 +115,12 @@ namespace Lucene.Net.Contrib.Spatial.Tes
return documents;
}
- /* Subclasses may override to transform or remove a shape for indexing */
+
+ documents.Add(document);
+ }
+ return documents;
+ }
+
protected virtual Shape convertShapeFromGetDocuments(Shape shape)
{
@@ -146,8 +156,7 @@ namespace Lucene.Net.Contrib.Spatial.Tes
if (storeShape && got.numFound > 0)
{
//check stored value is there & parses
- assertNotNull(
- new ShapeReadWriter(ctx).ReadShape(got.results[0].document.Get(strategy.GetFieldName())));
+ assertNotNull(ctx.ReadShape(got.results[0].document.Get(strategy.GetFieldName())));
}
if (concern.orderIsImportant)
{
@@ -206,7 +215,7 @@ namespace Lucene.Net.Contrib.Spatial.Tes
protected void adoc(String id, String shapeStr)
{
- Shape shape = shapeStr == null ? null : new ShapeReadWriter(ctx).ReadShape(shapeStr);
+ Shape shape = shapeStr == null ? null : ctx.ReadShape(shapeStr);
addDocument(newDoc(id, shape));
}