[ 
https://issues.apache.org/jira/browse/LUCENE-2506?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Karthick Sankarachary updated LUCENE-2506:
------------------------------------------

        Fix Version/s: 3.0.2
    Affects Version/s: 3.0.2
          Component/s: Index

> A Stateful Filter That Works Across Index Segments
> --------------------------------------------------
>
>                 Key: LUCENE-2506
>                 URL: https://issues.apache.org/jira/browse/LUCENE-2506
>             Project: Lucene - Java
>          Issue Type: Improvement
>          Components: Index
>    Affects Versions: 3.0.2
>            Reporter: Karthick Sankarachary
>             Fix For: 3.0.2
>
>         Attachments: LUCENE-2506.patch
>
>
> By design, Lucene's Filter abstraction is applied once per segment in the 
> index during searching. In particular, the reader provided to its 
> #getDocIdSet method does not represent the whole underlying index. In other 
> words, if the index has more than one segment the given reader only 
> represents a single segment. 
> As a result, that definition of the Filter suffers from a limitation in that 
> it does not have the ability to permit/prohibit documents in the search 
> results based on the terms residing in not just the current segment but also 
> the ones that came before it during the search. 
> To address this limitation, we introduce here a StatefulFilter which 
> specifically builds on the Filter class so as to make it capable of 
> remembering terms in segments spanning the whole
> underlying index. To reiterate, the need for making filters stateful stems 
> from the fact that some, although not most, filters care about what terms 
> they may have come across in prior segments. It does so by keeping track of 
> the past terms from prior segments in a cache that is maintained in a 
> StatefulTermsEnum instance on a per-thread basis.
> Note that we leave it up to the concrete sub-class of the stateful filter to 
> decide what to remember in its state or what not to. In other words, it can 
> choose to remember as much or as little from prior segments as it desires. In 
> keeping with the TermsEnum interface, which the StatefulTermsEnum class 
> builds on, it must let the searcher know what terms to accept and which ones 
> to skip over. More often than not, the state of the filter will come in handy 
> while implementing that very acceptance logic. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


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

Reply via email to