apache / apache/lucene

SpatialStrategy DocValues & FieldType customizability [LUCENE-5802]

Open
#6,864 1 comment 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

The SpatialStrategy API is a simple facade to index spatial data and query by it in a consistent way, hiding the implementation. For indexing data, it has one applicable method:

```java
public abstract Field[] createIndexableFields(Shape shape);
```

The base abstraction provides no further configuration. BBoxStrategy and PointVectorStrategy have a way to set the precisionStep of the underlying Double trie fields. But none have a way to use Floats, and none have a way to specify the use of DocValues (and which type). Perhaps there are other plausible nobs to turn. It is actually more than just indexing since at search time it may have to change accordingly (e.g. search difference between Float & Double). PrefixTreeStrategy is likely to soon deprecate/remove any applicability here (see LUCENE-5692).

If there is no change that could reasonably be made to SpatialStrategy itself, what is the pattern that BBoxStrategy and others should use?

---
Migrated from [LUCENE-5802](https://issues.apache.org/jira/browse/LUCENE-5802) by David Smiley (@dsmiley)

Contributor guide

Open the contributing guide

Research direction

Start by reading the SpatialStrategy API and comparing the configuration options in BBoxStrategy and PointVectorStrategy, especially precisionStep, numeric types, and DocValues. Review the PrefixTreeStrategy context and LUCENE-5692; done would require an agreed configuration pattern or API change that covers indexing and corresponding search behavior.

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
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.