You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Alan Woodward (JIRA)" <ji...@apache.org> on 2017/01/11 11:50:58 UTC

[jira] [Commented] (LUCENE-7627) Improve TermsEnum automaton filtering APIs

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

Alan Woodward commented on LUCENE-7627:
---------------------------------------

bq. I think the next step could be to address the TODO in CompiledAutomaton#getTermsEnum(Terms)

Although this might be trickier than it looks, as the contract on Terms is that you get a TermsEnum which will only return terms > startTerm, but it's initially unpositioned - which makes handling Type.ALL complicated...

> Improve TermsEnum automaton filtering APIs
> ------------------------------------------
>
>                 Key: LUCENE-7627
>                 URL: https://issues.apache.org/jira/browse/LUCENE-7627
>             Project: Lucene - Core
>          Issue Type: Improvement
>            Reporter: Alan Woodward
>         Attachments: LUCENE-7627.patch
>
>
> To filter a TermsEnum by a CompiledAutomaton, we currently have a number of different possibilities:
> * Terms.intersect(CompiledAutomaton, BytesRef) - efficient, but only works on NORMAL type automata
> * CompiledAutomaton.getTerms(Terms) - efficient, works on all automaton types, but requires a Terms instead of a TermsEnum, so no use for eg SortedDocValues.termsEnum()
> * AutomatonTermsEnum - takes a TermsEnum, so it's more general than the Terms methods above, but agian only works on NORMAL automata
> It's easy to do the wrong thing here, and at the moment we only guard against incorrect usage via runtime checks (see eg LUCENE-7576, https://github.com/flaxsearch/marple/issues/24).  We should try and clean this up.



--
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