This design "seems" wrong, since it does not support 'next set bit', which
will kill performance in many cases.
Why not use:
interface Filter {
boolean include(int docnum);
int next(int docnum);
}
It is easy to create a implementation FilterBits as
class FilterBits implements Filter
BitSet bits;
FilterBits(BitSet bits) {
this.bits = bits;
}
boolean include(int docnum) {
return bits.get(docnum);
}
int next(int docnum) {
return bits.nextSetBit(docnum);
}
}
But other more computational Filter implementations can easily be created.
-----Original Message-----
From: Peter Schäfer (JIRA) [mailto:[EMAIL PROTECTED]
Sent: Wednesday, May 31, 2006 6:48 AM
To: [email protected]
Subject: [jira] Created: (LUCENE-584) Decouple Filter from BitSet
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
{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]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]