package org.apache.solr.request.mdrill;
import java.io.IOException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.lucene.index.SegmentReader;
import org.apache.lucene.queryParser.ParseException;
import org.apache.solr.common.params.FacetParams;
import org.apache.solr.common.params.SolrParams;
import org.apache.solr.request.SolrQueryRequest;
import org.apache.solr.request.compare.SelectDetailRow;
import org.apache.solr.search.DocSet;
import org.apache.solr.search.SolrIndexSearcher;
public class MdrillParseDetailFdt {
private static final Log logger = LogFactory.getLog(MdrillParseDetailFdt.class);
public int offset ;
public int limit_offset=0;
public String crcOutputSet=null;
public MdrillParseDetailFdt(SolrParams params)
{
logger.info("params:"+params.toString());
this.offset = params.getInt(FacetParams.FACET_CROSS_OFFSET, 0);
int limit = params.getInt(FacetParams.FACET_CROSS_LIMIT, 100);
this.limit_offset=this.offset+limit;
this.crcOutputSet=params.get("mdrill.crc.key.set");
}
public fetchContaioner createContainer(String[] fields, DocSet baseDocs,SegmentReader reader,SolrIndexSearcher searcher,SolrQueryRequest req) throws IOException, ParseException
{
return new fetchContaioner(this,fields,baseDocs,reader,searcher,req);
}
public static class fetchContaioner{
public MdrillParseDetailFdt parse;
public int groupbySize;
public fetchContaioner(MdrillParseDetailFdt parse,String[] fields, DocSet baseDocs,SegmentReader reader,SolrIndexSearcher searcher,SolrQueryRequest req) throws IOException, ParseException
{
this.parse=parse;
this.groupbySize=fields.length;
}
public void free()
{
GroupListCache.cleanFieldValueCache(groupbySize);
SelectDetailRow.CLEAN();
}
}
}