source: vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/service/impl/SearchResultsDaoImpl.java @ 4501

Last change on this file since 4501 was 4501, checked in by twagoo, 10 years ago

Created facet fields provider that uses a facet fields service to get all field objects given the current selection.
Made an implementation of this service that uses the search result dao to get the fields from the SOLR

File size: 1.5 KB
Line 
1package eu.clarin.cmdi.vlo.service.impl;
2
3import eu.clarin.cmdi.vlo.service.SearchResultsDao;
4import eu.clarin.cmdi.vlo.FacetConstants;
5import java.util.List;
6import org.apache.solr.client.solrj.SolrQuery;
7import org.apache.solr.client.solrj.response.FacetField;
8import org.apache.solr.client.solrj.response.QueryResponse;
9import org.apache.solr.common.SolrDocumentList;
10
11public class SearchResultsDaoImpl extends SolrDaoImpl implements SearchResultsDao {
12
13    public SearchResultsDaoImpl(String solrUrl) {
14        super(solrUrl);
15    }
16
17    @Override
18    public SolrDocumentList getResults(SolrQuery query) {
19        setDefaultSortField(query);
20        QueryResponse response = fireQuery(query);
21        SolrDocumentList results = response.getResults();
22        return results;
23    }
24
25    @Override
26    public List<FacetField> getFacets(SolrQuery query) {
27        QueryResponse response = fireQuery(query);
28        return response.getFacetFields();
29    }
30
31    @Override
32    public SolrDocumentList getDocIdList(SolrQuery query) {
33        query = query.getCopy();
34        setDefaultSortField(query);
35        query.setFields(FacetConstants.FIELD_ID);
36        query.setFacet(false);
37        query.setStart(0);
38        query.setRows(Integer.MAX_VALUE);
39        QueryResponse queryResponse = fireQuery(query);
40        return queryResponse.getResults();
41    }
42
43    private void setDefaultSortField(SolrQuery query) {
44        if (query.getSortField() == null) {
45            query.setSort(SolrQuery.SortClause.asc(FacetConstants.FIELD_NAME));
46        }
47    }
48
49}
Note: See TracBrowser for help on using the repository browser.