Changeset 4566
- Timestamp:
- 02/25/14 14:34:29 (10 years ago)
- Location:
- vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo
- Files:
-
- 3 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/config/VloSpringConfig.java
r4565 r4566 23 23 import eu.clarin.cmdi.vlo.service.SolrFacetQueryFactory; 24 24 import eu.clarin.cmdi.vlo.service.impl.SearchResultsDaoImpl; 25 import eu.clarin.cmdi.vlo.service.impl.SolrDocumentQueryFactoryImpl; 25 26 import eu.clarin.cmdi.vlo.service.impl.SolrDocumentServiceImpl; 26 27 import eu.clarin.cmdi.vlo.service.impl.SolrFacetFieldsService; … … 70 71 @Bean 71 72 public FacetFieldsService facetFieldsService() { 72 return new SolrFacetFieldsService(searchResultsDao(), queryFactory());73 return new SolrFacetFieldsService(searchResultsDao(), facetQueryFactory()); 73 74 } 74 75 75 76 @Bean 76 77 public SolrDocumentService documentService() { 77 return new SolrDocumentServiceImpl(searchResultsDao(), queryFactory());78 return new SolrDocumentServiceImpl(searchResultsDao(), documentQueryFactory()); 78 79 } 79 80 … … 84 85 85 86 @Bean 86 public SolrFacetQueryFactory queryFactory() {87 public SolrFacetQueryFactory facetQueryFactory() { 87 88 return new SolrFacetQueryFactoryImpl(vloConfig().getFacetFields()); 89 } 90 91 @Bean 92 public SolrDocumentQueryFactoryImpl documentQueryFactory() { 93 return new SolrDocumentQueryFactoryImpl(); 88 94 } 89 95 -
vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/service/SolrFacetQueryFactory.java
r4565 r4566 31 31 32 32 SolrQuery createCountFacetsQuery(); 33 34 SolrQuery createDocumentQuery(QueryFacetsSelection selection, int first, int count);35 33 36 34 } -
vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/service/impl/SolrDocumentServiceImpl.java
r4565 r4566 19 19 import eu.clarin.cmdi.vlo.pojo.QueryFacetsSelection; 20 20 import eu.clarin.cmdi.vlo.service.SearchResultsDao; 21 import eu.clarin.cmdi.vlo.service.SolrDocumentQueryFactory; 21 22 import eu.clarin.cmdi.vlo.service.SolrDocumentService; 22 import eu.clarin.cmdi.vlo.service.SolrFacetQueryFactory;23 23 import java.util.List; 24 24 import org.apache.solr.client.solrj.SolrQuery; … … 32 32 33 33 private final SearchResultsDao searchResultsDao; 34 private final Solr FacetQueryFactory queryFatory;34 private final SolrDocumentQueryFactory queryFatory; 35 35 36 public SolrDocumentServiceImpl(SearchResultsDao searchResultsDao, Solr FacetQueryFactory queryFatory) {36 public SolrDocumentServiceImpl(SearchResultsDao searchResultsDao, SolrDocumentQueryFactory queryFatory) { 37 37 this.searchResultsDao = searchResultsDao; 38 38 this.queryFatory = queryFatory; -
vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/service/impl/SolrFacetQueryFactoryImpl.java
r4565 r4566 17 17 package eu.clarin.cmdi.vlo.service.impl; 18 18 19 import eu.clarin.cmdi.vlo.FacetConstants;20 19 import eu.clarin.cmdi.vlo.service.SolrFacetQueryFactory; 21 20 import eu.clarin.cmdi.vlo.pojo.QueryFacetsSelection; 22 import java.util.ArrayList;23 import java.util.Collection;24 21 import java.util.List; 25 import java.util.Map;26 22 import org.apache.solr.client.solrj.SolrQuery; 27 import org.apache.solr.client.solrj.util.ClientUtils;28 23 29 24 /** … … 33 28 * @author twagoo 34 29 */ 35 public class SolrFacetQueryFactoryImpl implements SolrFacetQueryFactory {30 public class SolrFacetQueryFactoryImpl extends AbstractSolrQueryFactory implements SolrFacetQueryFactory { 36 31 37 private static final String SOLR_SEARCH_ALL = "*:*";38 32 private final SolrQuery facetCountQuery; 39 33 private final String[] facets; … … 58 52 } 59 53 60 @Override61 public SolrQuery createDocumentQuery(QueryFacetsSelection selection, int first, int count) {62 final SolrQuery query = getDefaultDocumentQuery();63 addQueryFacetParameters(query, selection);64 query.setStart(first);65 query.setRows(count);66 return query;67 }68 69 protected void addQueryFacetParameters(final SolrQuery query, QueryFacetsSelection queryFacetsSelections) {70 final String queryString = queryFacetsSelections.getQuery();71 72 if (queryString == null) {73 query.setQuery(SOLR_SEARCH_ALL);74 } else {75 query.setQuery(ClientUtils.escapeQueryChars(queryString));76 }77 78 final Map<String, Collection<String>> selections = queryFacetsSelections.getSelection();79 if (selections != null) {80 final List<String> encodedQueries = new ArrayList(selections.size()); // assuming every facet has one selection, most common scenario81 for (Map.Entry<String, Collection<String>> selection : selections.entrySet()) {82 final String facetName = selection.getKey();83 final Collection<String> values = selection.getValue();84 if (values != null) {85 for (String value : values) {86 encodedQueries.add(String.format("%s:%s", facetName, ClientUtils.escapeQueryChars(value)));87 }88 }89 }90 query.setFilterQueries(encodedQueries.toArray(new String[encodedQueries.size()]));91 }92 }93 94 54 private SolrQuery getDefaultFacetQuery() { 95 55 SolrQuery query = new SolrQuery(); … … 101 61 } 102 62 103 private SolrQuery getDefaultDocumentQuery() {104 SolrQuery query = new SolrQuery();105 query.setFields(FacetConstants.FIELD_NAME, FacetConstants.FIELD_ID, FacetConstants.FIELD_DESCRIPTION, FacetConstants.FIELD_COLLECTION, FacetConstants.FIELD_RESOURCE);106 query.setSort(SolrQuery.SortClause.asc(FacetConstants.FIELD_NAME));107 return query;108 }109 110 63 @Override 111 64 public synchronized SolrQuery createCountFacetsQuery() {
Note: See TracChangeset
for help on using the changeset viewer.