package zh.solr.se.searcher;
import java.io.IOException;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import org.apache.solr.handler.component.SearchHandler;
import org.apache.solr.request.SolrQueryRequest;
import org.apache.solr.request.SolrQueryResponse;
import org.apache.solr.request.SolrRequestHandler;
import org.apache.solr.servlet.SolrDispatchFilter;
public class MainDispatchFilter extends SolrDispatchFilter {
protected void execute(HttpServletRequest req, SolrRequestHandler handler,
SolrQueryRequest solrReq, SolrQueryResponse solrResp) {
solrReq.getContext().put("webapp", req.getContextPath());
if (SearchHandler.class.isAssignableFrom(handler.getClass())) {
// delegate to the right search service
String coreName = solrReq.getCore().getName();
DefaultSearchService service = SearchServiceFactory
.getSearchService(coreName);
service.execute(req, handler, solrReq, solrResp);
} else
{
super.execute(req, handler, solrReq, solrResp);
}
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
super.doFilter(request, response, chain);
}
}