[ http://issues.apache.org/jira/browse/LUCENE-584?page=comments#action_12417917 ]
paul.elschot commented on LUCENE-584: ------------------------------------- I hope I got all the attachments right, please holler in case something does not patch or compile cleanly. Some questions/remarks: - When IndexSearcher gets a BitSet from a Filter, it will not use skipTo() on the Scorer of the Query being filtered. This still allows to use the 1.4 BooleanScorer until Filter.getBits() is removed. - Ok. not to add match() method(s) to Searcher/Searchable ? - BitSetIterator of SOLR-15 could implement a Matcher, and perhaps to be added to org.apache.lucene.util ? - Matcher as superclass of Scorer opens possibility to add BooleanQuery.add(Filter) method. This also needs the addition of required Matchers to ConjunctionScorer and the addition of prohibited Matchers at ReqExclScorer/DisjunctionScorer. Doing this filtering in ConjunctionScorer/ReqExclScorer will probably reduce the number of method calls for filtering. Once such an addition is done to BooleanQuery, the filtering methods in IndexSearcher could be deprecated in favour of BooleanQuery.add(Filter). Regards, Paul Elschot > 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-20060626.patch, > HitCollector-20060626.patch, IndexSearcher-20060626.patch, > MatchCollector.java, Matcher.java, Scorer-20060626.patch, > Searcher-20060626.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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]