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

Paul Elschot commented on LUCENE-5092:
--------------------------------------

Do you mean that the a java public definition in the core module for this gives 
it a wide impact?

One could also subclass DocIdSet and Filter to avoid the type check on the DISI 
in the join module, but that is not in the patch.

The reason to have DocBlocksIterator in core is to allow some filters that are 
in core to provide it, otherwise it could be in the join module only. I tried 
to think of way to confine this to the join module, but I did not find one.
A factory for this could be confined to the join module, but it would have to 
iterate the set once to be able to look back.

DocBlocksIterator does not impose that the parent document  is at the end or 
the beginning of a document block, that could  be a reason to have it in core.

advanceToJustBefore() is an additional method that is somehow the difference of 
two existing ones:
advanceToJustBefore() followed by nextDoc() === advance()
So a Filter providing this is a normal Filter that can also do an "almost" 
advance(). Is that an "abuse" of Filter?




> join: don't expect all filters to be FixedBitSet instances
> ----------------------------------------------------------
>
>                 Key: LUCENE-5092
>                 URL: https://issues.apache.org/jira/browse/LUCENE-5092
>             Project: Lucene - Core
>          Issue Type: Improvement
>          Components: modules/join
>            Reporter: Adrien Grand
>            Assignee: Adrien Grand
>            Priority: Minor
>         Attachments: LUCENE-5092.patch
>
>
> The join module throws exceptions when the parents filter isn't a 
> FixedBitSet. The reason is that the join module relies on prevSetBit to find 
> the first child document given a parent ID.
> As suggested by Uwe and Paul Elschot on LUCENE-5081, we could fix it by 
> exposing methods in the iterators to iterate backwards. When the join modules 
> gets an iterator which isn't able to iterate backwards, it would just need to 
> dump its content into another DocIdSet that supports backward iteration, 
> FixedBitSet for example.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

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

Reply via email to