source: vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/service/impl/SolrFacetFieldsService.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.8 KB
Line 
1/*
2 * Copyright (C) 2014 CLARIN
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
16 */
17package eu.clarin.cmdi.vlo.service.impl;
18
19import eu.clarin.cmdi.vlo.pojo.FacetSelection;
20import eu.clarin.cmdi.vlo.service.FacetFieldsService;
21import eu.clarin.cmdi.vlo.service.SearchResultsDao;
22import eu.clarin.cmdi.vlo.service.SolrQueryFactory;
23import java.util.List;
24import org.apache.solr.client.solrj.SolrQuery;
25import org.apache.solr.client.solrj.response.FacetField;
26
27/**
28 *
29 * @author twagoo
30 */
31public class SolrFacetFieldsService implements FacetFieldsService {
32
33    private final SearchResultsDao searchResultsDao;
34    private final SolrQueryFactory queryFatory;
35
36    public SolrFacetFieldsService(SearchResultsDao searchResultsDao, SolrQueryFactory queryFatory) {
37        this.searchResultsDao = searchResultsDao;
38        this.queryFatory = queryFatory;
39    }
40
41    @Override
42    public List<FacetField> getFacetFields(List<FacetSelection> selection) {
43        return searchResultsDao.getFacets(queryFatory.createQuery(selection));
44    }
45
46    @Override
47    public long getFacetFieldCount() {
48        return (long) searchResultsDao.getFacets(COUNT_FACETS_QUERY).size(); //TODO: count facets
49    }
50    public static final SolrQuery COUNT_FACETS_QUERY = new SolrQuery("");
51
52}
Note: See TracBrowser for help on using the repository browser.