apache / apache/lucene

ShapeMatcher and ShapeValues [LUCENE-4388]

Open
#5,454 3 comments 0 reactions 0 assignees View on GitHub
legacy-jira-priority:Major module:spatial type:enhancement
Dominant language
Java
Stars
3.6k
Forks
1.4k
Avg merge
2d 11h
Merged PRs (30d)
88

Description

This patch provides two key interfaces: ShapeMatcher and ShapeValues. The ShapeMatcher concept is borrowed from @ryantxu's JtsGeoStrategy which has a similar GeometryTester. ShapeValues is basically a ValueSource/FunctionValues for shapes. This isn't working; I didn't modify any existing classes.

I haven't completely thought this through but a SpatialStrategy might expose a makeShapeValues(IndexReader) and/or makeCenterShapeValues(IndexReader) (the latter is the center points of indexed data). A generic Distance ValueSource could easily be implemented in terms of makeCenterShapeValues(). And a strategy could support any query shape simply by implementing makeShapeValues().

I've been thinking about how the API handles strategies supporting indexing multiple shapes and I wonder if that could happen simply via a new MultiShape<Shape>.

---
Migrated from [LUCENE-4388](https://issues.apache.org/jira/browse/LUCENE-4388) by David Smiley (@dsmiley), updated Sep 17 2012
Attachments: [LUCENE-4388_ShapeValues_and_ShapeMatcher.patch](https://apache.github.io/lucene-jira-archive/attachments/LUCENE-4388/LUCENE-4388_ShapeValues_and_ShapeMatcher.patch)

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the attached LUCENE-4388_ShapeValues_and_ShapeMatcher.patch and the ShapeMatcher and ShapeValues interfaces it introduces. Read the proposed SpatialStrategy makeShapeValues(IndexReader) and makeCenterShapeValues(IndexReader) entry points; the issue does not define an agreed API or concrete completion criteria, so those must be established before implementation.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
search
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
18/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.