You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "paul.elschot (JIRA)" <ji...@apache.org> on 2006/07/02 12:54:30 UTC

[jira] Commented: (LUCENE-584) Decouple Filter from BitSet

    [ http://issues.apache.org/jira/browse/LUCENE-584?page=comments#action_12418842 ] 

paul.elschot commented on LUCENE-584:
-------------------------------------

Perhaps the BitsMatcher class is better implemented as a static method in a new class MatcherUtils.createMatcher(BitSet).
Similar methods could be added for OpenBitSet, SortedVIntList, int[] and whatever data structure comes around for implementing Filter.getMatcher(IndexReader).
When Matcher is a superclass of Scorer, TermScorer already implements a Matcher for TermDocs.


> Decouple Filter from BitSet
> ---------------------------
>
>          Key: LUCENE-584
>          URL: http://issues.apache.org/jira/browse/LUCENE-584
>      Project: Lucene - Java
>         Type: Improvement

>   Components: Search
>     Versions: 2.0.1
>     Reporter: Peter Schäfer
>     Priority: Minor
>  Attachments: BitsMatcher.java, Filter-20060628.patch, HitCollector-20060628.patch, IndexSearcher-20060628.patch, MatchCollector.java, Matcher.java, Scorer-20060628.patch, Searchable-20060628.patch, Searcher-20060628.patch, SortedVIntList.java, TestSortedVIntList.java
>
> {code}
> package org.apache.lucene.search;
> public abstract class Filter implements java.io.Serializable 
> {
>   public abstract AbstractBitSet bits(IndexReader reader) throws IOException;
> }
> public interface AbstractBitSet 
> {
>   public boolean get(int index);
> }
> {code}
> It would be useful if the method =Filter.bits()= returned an abstract interface, instead of =java.util.BitSet=.
> Use case: there is a very large index, and, depending on the user's privileges, only a small portion of the index is actually visible.
> Sparsely populated =java.util.BitSet=s are not efficient and waste lots of memory. It would be desirable to have an alternative BitSet implementation with smaller memory footprint.
> Though it _is_ possibly to derive classes from =java.util.BitSet=, it was obviously not designed for that purpose.
> That's why I propose to use an interface instead. The default implementation could still delegate to =java.util.BitSet=.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


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