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]

Reply via email to