FAQ
[ https://issues.apache.org/jira/browse/LUCENE-584?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12643495#action_12643495 ]

Wouter Heijke commented on LUCENE-584:
--------------------------------------

We got the same error here on a 15Gb index with Lucene 2.4.0:

java.lang.ClassCastException: java.util.BitSet cannot be cast to org.apache.lucene.search.DocIdSet
org.apache.lucene.search.CachingWrapperFilter.getDocIdSet(CachingWrapperFilter.java:76)
org.apache.lucene.misc.ChainedFilter.getDocIdSet(ChainedFilter.java:200)
org.apache.lucene.misc.ChainedFilter.getDocIdSet(ChainedFilter.java:145)
org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:140)
org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:112)
org.apache.lucene.search.Searcher.search(Searcher.java:136)
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.1
Reporter: Peter Schäfer
Assignee: Michael Busch
Priority: Minor
Fix For: 2.4

Attachments: bench-diff.txt, bench-diff.txt, CHANGES.txt.patch, ContribQueries20080111.patch, lucene-584-take2.patch, lucene-584-take3-part1.patch, lucene-584-take3-part2.patch, lucene-584-take4-part1.patch, lucene-584-take4-part2.patch, lucene-584-take5-part1.patch, lucene-584-take5-part2.patch, lucene-584.patch, Matcher-20070905-2default.patch, Matcher-20070905-3core.patch, Matcher-20071122-1ground.patch, Some Matchers.zip, Test20080111.patch


{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: java-dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-dev-help@lucene.apache.org

Search Discussions

  • Paul Elschot (JIRA) at Oct 30, 2008 at 7:19 am
    [ https://issues.apache.org/jira/browse/LUCENE-584?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12643767#action_12643767 ]

    Paul Elschot commented on LUCENE-584:
    -------------------------------------

    Wouter, about this:
    {{java.lang.ClassCastException: java.util.BitSet cannot be cast to org.apache.lucene.search.DocIdSet}}

    LUCENE-1187 should have fixed this, so could you file a bug report?
    In case you need a workaround, also have a look at LUCENE-1296.



    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.1
    Reporter: Peter Schäfer
    Assignee: Michael Busch
    Priority: Minor
    Fix For: 2.4

    Attachments: bench-diff.txt, bench-diff.txt, CHANGES.txt.patch, ContribQueries20080111.patch, lucene-584-take2.patch, lucene-584-take3-part1.patch, lucene-584-take3-part2.patch, lucene-584-take4-part1.patch, lucene-584-take4-part2.patch, lucene-584-take5-part1.patch, lucene-584-take5-part2.patch, lucene-584.patch, Matcher-20070905-2default.patch, Matcher-20070905-3core.patch, Matcher-20071122-1ground.patch, Some Matchers.zip, Test20080111.patch


    {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: java-dev-unsubscribe@lucene.apache.org
    For additional commands, e-mail: java-dev-help@lucene.apache.org

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupjava-dev @
categorieslucene
postedOct 29, '08 at 2:22p
activeOct 30, '08 at 7:19a
posts2
users1
websitelucene.apache.org

1 user in discussion

Paul Elschot (JIRA): 2 posts

People

Translate

site design / logo © 2021 Grokbase