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

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

turned VloConfig? into a POJO, created factory interface so that multiple ways. Adapted importer and web app to use this - importer still using static (but project-local) config references

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