lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Paul Elschot (JIRA)" <>
Subject [jira] Commented: (LUCENE-584) Decouple Filter from BitSet
Date Mon, 30 Jul 2007 19:51:53 GMT


Paul Elschot commented on LUCENE-584:

Some more remarks on the 20070730 patches.

To recap, this introduces Matcher as a superclass of Scorer to take the role that BitSet currently
has in Filter.

The total number of java files changed/added by these patches is 47, so some extra care will
be needed.
The following issues are still pending:

What approach should be taken for the API change to Filter (see above, 2 comments up)?

I'd like to get all test cases to pass again. TestRemoteCachingWrapperFilter still does not
pass, and
I don't know why.

For xml-query-parser in contrib I'd like to know in which direction to proceed (see 1 comment
Does it make sense to try and get the TestQueryTemplateManager test to pass again?

The ..default.. patch has taken OpenBitSet and friends from solr to have a default implementation.
However, I have not checked whether there is unused code in there, so some trimming may still
be appropriate.

Once these issues have been resolved far enough, I would recommend to introduce this shortly
after a release so there is some time to let things settle.

> Decouple Filter from BitSet
> ---------------------------
>                 Key: LUCENE-584
>                 URL:
>             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, Matcher1-ground-20070730.patch,
Matcher2-default-20070730.patch, Matcher3-core-20070730.patch, Matcher4-contrib-misc-20070730.patch,
Matcher5-contrib-queries-20070730.patch, Matcher6-contrib-xml-20070730.patch, Some
> {code}
> package;
> public abstract class Filter implements 
> {
>   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:
For additional commands, e-mail:

View raw message