You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Michael McCandless (JIRA)" <ji...@apache.org> on 2016/02/04 22:41:40 UTC

[jira] [Commented] (LUCENE-6930) Decouple GeoPointField from NumericType

    [ https://issues.apache.org/jira/browse/LUCENE-6930?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15133089#comment-15133089 ] 

Michael McCandless commented on LUCENE-6930:
--------------------------------------------

Patch looks good!

If a user accidentally indexes with the legacy ({{NUMERIC}}) encoding
but searches with {{PREFIX}} it won't be detected right?  Like they
will just get 0 results?  I don't think we must fix this... seems like
it's not easy since there is no "schema" for this.

Hmm I didn't see this added?

{quote}
Can you update GeoPointDistanceQuery javadocs explaining the max
radius limit? I.e. that the circle projected on the earth's surface
cannot wrap around and touch itself again (if I understand that
right!)?
{quote}

+1 to commit!  Thanks [~nknize] ... I'm curious to see how this improves
the metrics (indexing time, index size, heap used by {{IndexReader}},
search time).


> Decouple GeoPointField from NumericType
> ---------------------------------------
>
>                 Key: LUCENE-6930
>                 URL: https://issues.apache.org/jira/browse/LUCENE-6930
>             Project: Lucene - Core
>          Issue Type: Improvement
>          Components: modules/spatial
>            Reporter: Nicholas Knize
>             Fix For: 5.5, trunk
>
>         Attachments: LUCENE-6930.patch, LUCENE-6930.patch, LUCENE-6930.patch, LUCENE-6930.patch, LUCENE-6930.patch, LUCENE-6930.patch
>
>
> {{GeoPointField}} currently relies on {{NumericTokenStream}} to create prefix terms for a GeoPoint using the precision step defined in {{GeoPointField}}. At search time {{GeoPointTermsEnum}} recurses to a max precision that is computed by the Query parameters. This max precision is never the full precision, so creating and indexing the full precision terms is useless and wasteful (it was always a side effect of just using indexing logic from the Numeric type). 
> Furthermore, since the numerical logic always stored high precision terms first, the recursion in {{GeoPointTermsEnum}} required transient memory for storing ranges. By moving the trie logic to its own {{GeoPointTokenStream}} and reversing the term order (such that lower resolution terms are first), the GeoPointTermsEnum can naturally traverse, enabling on-demand creation of PrefixTerms. This will be done in a separate issue.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org