Example usage for org.apache.solr.search PostFilter getFilterCollector

List of usage examples for org.apache.solr.search PostFilter getFilterCollector

Introduction

In this page you can find the example usage for org.apache.solr.search PostFilter getFilterCollector.

Prototype

public DelegatingCollector getFilterCollector(IndexSearcher searcher);

Source Link

Document

Returns a DelegatingCollector to be run after the main query and all of its filters, but before any sorting or grouping collectors

Usage

From source file:org.alfresco.solr.query.PostFilterQuery.java

License:Open Source License

public DelegatingCollector getFilterCollector(IndexSearcher searcher) {
    List<PostFilter> postFilters = new ArrayList<PostFilter>();
    getPostFilters(query, postFilters);/*from   w  ww  .  ja  va 2  s.co  m*/

    Collections.sort(postFilters, new PostFilterComp());

    List<DelegatingCollector> delegatingCollectors = new ArrayList<DelegatingCollector>();
    for (PostFilter postFilter : postFilters) {
        DelegatingCollector delegatingCollector = postFilter.getFilterCollector(searcher);
        if (!(delegatingCollector instanceof AllAccessCollector)) {
            delegatingCollectors.add(delegatingCollector);
        }
    }

    if (delegatingCollectors.size() == 0) {
        return new AllAccessCollector();
    } else if (delegatingCollectors.size() == 1) {
        return delegatingCollectors.get(0);
    } else {
        return new WrapperCollector(delegatingCollectors);
    }
}