[
https://issues.apache.org/jira/browse/ACCUMULO-1682?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13759752#comment-13759752
]
Corey J. Nolet commented on ACCUMULO-1682:
------------------------------------------
I've been playing around with swapping out the source iterator underneath the
intersecting iterator for things that I want to query in ranges. I'm wondering
if it would work to take your composite index approach and actually have the
source iterator modify the key (to always be the lower bound of the range query
if in fact the key is within the query range) before the key ever makes it to
the intersecting iterator.
In other words, let's say the term in question is AGE=>30 && AGE<=40. The
intersecting iterator only needs to know that I care if AGE=30 and should tell
each source iterator to begin there. If the source iterator knows about the
range query AGE>=30 && AGE<=40, it can continue to iterate the keys that match
but modify them to AGE=30 when getTopKey() is called. This way the intersecting
iterator sees what it asked for and when the full document is retrieved, the
actual value is pulled out.
Excuse my ignorance if this is a big nono. I know that certain optimizations
performed on scans make it very dangerous to modify keys. I can't foresee any
conflicts with the order of the keys in the source iterator since I'm always
rounding down and I'm scanning through increasing keys to start with. I'm
assuming this has already been tried and doesn't work. Am I correct?
> Iterator and example to support intersection of document-partitioned index
> terms by ranges with lower and upper bounds.
> -----------------------------------------------------------------------------------------------------------------------
>
> Key: ACCUMULO-1682
> URL: https://issues.apache.org/jira/browse/ACCUMULO-1682
> Project: Accumulo
> Issue Type: Improvement
> Reporter: Corey J. Nolet
> Priority: Minor
> Labels: proposal
>
> The current IntersectingIterator seeks to discrete terms that are encoded
> into the column families to find all column qualifiers that share all of the
> discrete column families of interest (with the additional ability to negate
> some of the column families). Looking at the current IntersectingIterator
> code, it should be possible to return all column qualifiers with a column
> family within a given range.
> An example of this is finding all terms where NAME=Joe and (AGE>=30 &&
> AGE<60) and STATE!=MD. If an example is provided, numerical types like the
> age could easily be encoded using the new Lexicoders.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira