Hi all,

Have any one try to use CollapseFilter with the latest version of Solr in
trunk? However, it looks like Solr 1.4 doesn't allow calling setFilterList()
and setFilter() on one instance of the QueryCommand. I modified the code in
QueryCommand to allow this:

    public QueryCommand setFilterList(Query f) {
//      if( filter != null ) {
//        throw new IllegalArgumentException( "Either filter or filterList
may be set in the QueryCommand, but not both." );
//      }
      filterList = null;
      if (f != null) {
        filterList = new ArrayList<Query>(2);
        filterList.add(f);
      }
      return this;
    }

However, I still have a problem which prevent query filters from working
when used in conjunction with CollapseFilter. In other words, query filters
doesn't seem to have any effects on the result set when CollapseFilter is
used.

The other problem is related to OpenBitSet:

java.lang.ArrayIndexOutOfBoundsException: 2183
        at org.apache.lucene.util.OpenBitSet.fastSet(OpenBitSet.java:242)
        at org.apache.solr.search.CollapseFilter.addDoc(CollapseFilter.java:202)

        at 
org.apache.solr.search.CollapseFilter.adjacentCollapse(CollapseFilter.java:161)
        at 
org.apache.solr.search.CollapseFilter.&lt;init&gt;(CollapseFilter.java:141)

        at 
org.apache.solr.handler.component.QueryComponent.process(QueryComponent.java:217)
        at 
org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:195)
        at 
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:131)

        at org.apache.solr.core.SolrCore.execute(SolrCore.java:1333)
        at 
org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:303)
        at 
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:232)

        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)

        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)

        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)

        at 
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
        at 
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
        at 
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)

        at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)


        at java.lang.Thread.run(Thread.java:619)

I think CollapseFilter is rather an important function in Solr that gets
used quite frequently. Does anyone have a solution for this?

-- 
Regards,

Cuong Hoang

Reply via email to