Hoss, would this work (is this what you said)? public BitSet bits(IndexReader reader) throws IOException{ return null; }
public Matcher getMatcher(IndexReader reader) throws IOException { if(bits() == null) throw new SomeException("Filter must implement at least one of..."); return new BitsMatcher(bits()); } and IndexSearcher does not have any logic, just uses getMatcher() current implementations would work, new as well ----- Original Message ---- From: Hoss Man (JIRA) <[EMAIL PROTECTED]> To: [EMAIL PROTECTED] Sent: Friday, 13 April, 2007 8:01:16 PM Subject: [jira] Commented: (LUCENE-584) Decouple Filter from BitSet [ https://issues.apache.org/jira/browse/LUCENE-584?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12488733 ] Hoss Man commented on LUCENE-584: --------------------------------- I'm still behind on following this issue, but Otis: if you are interested in moving forward with this, you might consider trying the cahnges i proposed in my "15/Mar/07 11:06 AM" Comment... https://issues.apache.org/jira/browse/LUCENE-584#action_12481263 ...I think it would keep IndexSearcher a little cleaner, and make it easier for people to migrate existing Filter's gradually (without requiring extra work for people writing new "Matcher" style Filters from scratch) > Decouple Filter from BitSet > --------------------------- > > Key: LUCENE-584 > URL: https://issues.apache.org/jira/browse/LUCENE-584 > Project: Lucene - Java > Issue Type: Improvement > Components: Search > Affects Versions: 2.0.1 > Reporter: Peter Schäfer > Priority: Minor > Attachments: bench-diff.txt, bench-diff.txt, BitsMatcher.java, > Filter-20060628.patch, HitCollector-20060628.patch, > IndexSearcher-20060628.patch, MatchCollector.java, Matcher.java, > Matcher20070226.patch, Scorer-20060628.patch, Searchable-20060628.patch, > Searcher-20060628.patch, Some Matchers.zip, 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. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] ___________________________________________________________ Yahoo! Mail is the world's favourite email. Don't settle for less, sign up for your free account today http://uk.rd.yahoo.com/evt=44106/*http://uk.docs.yahoo.com/mail/winter07.html --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]