Changeset 4565


Ignore:
Timestamp:
02/25/14 14:25:15 (10 years ago)
Author:
twagoo
Message:
  • List of facets in config now a list, not string array
  • Renamed SolrQueryFactory? to SolrFacetQueryFactory? (there will be a separate one for documents)
  • It now gets the list of facets to query for, not the config that holds that list
Location:
vlo/branches/vlo-3.0
Files:
7 edited
3 moved

Legend:

Unmodified
Added
Removed
  • vlo/branches/vlo-3.0/vlo-commons/src/main/java/eu/clarin/cmdi/vlo/config/VloConfig.java

    r4509 r4565  
    33import java.io.UnsupportedEncodingException;
    44import java.net.URLEncoder;
     5import java.util.ArrayList;
    56import java.util.List;
    67import javax.xml.bind.annotation.XmlElement;
     
    104105     */
    105106    @XmlElementWrapper(name = "facetFields")
    106     private String[] facetField = {"", "", ""};
     107    private List<String> facetField = new ArrayList<String>();
    107108
    108109    // test related parameters
     
    689690     * @return the value
    690691     */
    691     public String[] getFacetFields() {
     692    public List<String> getFacetFields() {
    692693        return facetField;
    693694    }
     
    701702     * @param param the value, a list of facet fields
    702703     */
    703     public void setFacetFields(String[] param) {
     704    public void setFacetFields(List<String> param) {
    704705        facetField = param;
    705706    }
  • vlo/branches/vlo-3.0/vlo-commons/src/test/java/eu/clarin/cmdi/vlo/config/DefaultVloConfigFactoryTest.java

    r4517 r4565  
    55import java.net.URLEncoder;
    66import java.util.ArrayList;
     7import java.util.Arrays;
    78import java.util.List;
    89import static org.junit.Assert.*;
     
    678679        System.out.println("getFacetFields");
    679680
    680         String[] expResult = {
     681        List<String> expResult = Arrays.asList(
    681682            "collection",
    682683            "language",
     
    691692            "dataProvider",
    692693            "nationalProject",
    693             "keywords"};
    694 
    695         String[] result = config.getFacetFields();
    696 
    697         assertArrayEquals(expResult, result);
     694            "keywords");
     695
     696        List<String> result = config.getFacetFields();
     697
     698        assertEquals(expResult, result);
    698699    }
    699700
     
    706707        System.out.println("setFacetFields");
    707708
    708         String[] expResult = {
     709        List<String> expResult = Arrays.asList(
    709710            "collection",
    710711            "language",
     
    719720            "dataProvider",
    720721            "nationalProject",
    721             "keywords"};
     722            "keywords");
    722723
    723724        config.setFacetFields(expResult);
    724725
    725         String result[] = config.getFacetFields();
    726 
    727         assertArrayEquals(expResult, result);
     726        List<String> result = config.getFacetFields();
     727
     728        assertEquals(expResult, result);
    728729    }
    729730
  • vlo/branches/vlo-3.0/vlo-commons/src/test/java/eu/clarin/cmdi/vlo/config/VloConfigMarshallerTest.java

    r4517 r4565  
    5656        assertEquals("http://localhost:8080/vlo_solr/", config.getSolrUrl());
    5757        assertEquals(3, config.getDataRoots().size());
    58         assertEquals(13, config.getFacetFields().length);
     58        assertEquals(13, config.getFacetFields().size());
    5959    }
    6060
     
    6767        config.setSolrUrl("http://server/solr");
    6868        config.setDataRoots(Arrays.asList(new DataRoot("originName", new File("rootFile"), "prefix", "toStrip", Boolean.FALSE)));
    69         config.setFacetFields(new String[]{"collection", "country", "continent"});
     69        config.setFacetFields(Arrays.asList("collection", "country", "continent"));
    7070        final StringWriter sw = new StringWriter();
    7171        instance.marshal(config, new StreamResult(sw));
  • vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/config/VloSpringConfig.java

    r4530 r4565  
    2121import eu.clarin.cmdi.vlo.service.SearchResultsDao;
    2222import eu.clarin.cmdi.vlo.service.SolrDocumentService;
    23 import eu.clarin.cmdi.vlo.service.SolrQueryFactory;
     23import eu.clarin.cmdi.vlo.service.SolrFacetQueryFactory;
    2424import eu.clarin.cmdi.vlo.service.impl.SearchResultsDaoImpl;
    2525import eu.clarin.cmdi.vlo.service.impl.SolrDocumentServiceImpl;
    2626import eu.clarin.cmdi.vlo.service.impl.SolrFacetFieldsService;
    27 import eu.clarin.cmdi.vlo.service.impl.SolrQueryFactoryImpl;
     27import eu.clarin.cmdi.vlo.service.impl.SolrFacetQueryFactoryImpl;
    2828import java.io.IOException;
    2929import org.apache.solr.client.solrj.SolrServer;
     
    8484
    8585    @Bean
    86     public SolrQueryFactory queryFactory() {
    87         return new SolrQueryFactoryImpl(vloConfig());
     86    public SolrFacetQueryFactory queryFactory() {
     87        return new SolrFacetQueryFactoryImpl(vloConfig().getFacetFields());
    8888    }
    8989
  • vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/service/SolrFacetQueryFactory.java

    r4530 r4565  
    2626 * @author twagoo
    2727 */
    28 public interface SolrQueryFactory {
     28public interface SolrFacetQueryFactory {
    2929
    3030    SolrQuery createFacetQuery(QueryFacetsSelection selection);
  • vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/service/impl/SolrDaoImpl.java

    r4527 r4565  
    5555            // present the facets from the config file as a list to a new set
    5656            Set<String> facetsDefined;
    57             facetsDefined = new HashSet<String>(Arrays.asList(config.getFacetFields()));
     57            facetsDefined = new HashSet<String>(config.getFacetFields());
    5858
    5959            // check the filters in the query by name
  • vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/service/impl/SolrDocumentServiceImpl.java

    r4536 r4565  
    2020import eu.clarin.cmdi.vlo.service.SearchResultsDao;
    2121import eu.clarin.cmdi.vlo.service.SolrDocumentService;
    22 import eu.clarin.cmdi.vlo.service.SolrQueryFactory;
     22import eu.clarin.cmdi.vlo.service.SolrFacetQueryFactory;
    2323import java.util.List;
    2424import org.apache.solr.client.solrj.SolrQuery;
     
    3232
    3333    private final SearchResultsDao searchResultsDao;
    34     private final SolrQueryFactory queryFatory;
     34    private final SolrFacetQueryFactory queryFatory;
    3535
    36     public SolrDocumentServiceImpl(SearchResultsDao searchResultsDao, SolrQueryFactory queryFatory) {
     36    public SolrDocumentServiceImpl(SearchResultsDao searchResultsDao, SolrFacetQueryFactory queryFatory) {
    3737        this.searchResultsDao = searchResultsDao;
    3838        this.queryFatory = queryFatory;
  • vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/service/impl/SolrFacetFieldsService.java

    r4520 r4565  
    2020import eu.clarin.cmdi.vlo.service.FacetFieldsService;
    2121import eu.clarin.cmdi.vlo.service.SearchResultsDao;
    22 import eu.clarin.cmdi.vlo.service.SolrQueryFactory;
     22import eu.clarin.cmdi.vlo.service.SolrFacetQueryFactory;
    2323import java.util.List;
    2424import org.apache.solr.client.solrj.response.FacetField;
     
    3333
    3434    private final SearchResultsDao searchResultsDao;
    35     private final SolrQueryFactory queryFatory;
     35    private final SolrFacetQueryFactory queryFatory;
    3636
    3737    /**
     
    4040     * @param queryFatory factory to use to construct facet queries
    4141     */
    42     public SolrFacetFieldsService(SearchResultsDao searchResultsDao, SolrQueryFactory queryFatory) {
     42    public SolrFacetFieldsService(SearchResultsDao searchResultsDao, SolrFacetQueryFactory queryFatory) {
    4343        this.searchResultsDao = searchResultsDao;
    4444        this.queryFatory = queryFatory;
  • vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/service/impl/SolrFacetQueryFactoryImpl.java

    r4543 r4565  
    1818
    1919import eu.clarin.cmdi.vlo.FacetConstants;
    20 import eu.clarin.cmdi.vlo.config.VloConfig;
    21 import eu.clarin.cmdi.vlo.service.SolrQueryFactory;
     20import eu.clarin.cmdi.vlo.service.SolrFacetQueryFactory;
    2221import eu.clarin.cmdi.vlo.pojo.QueryFacetsSelection;
    2322import java.util.ArrayList;
     
    3433 * @author twagoo
    3534 */
    36 public class SolrQueryFactoryImpl implements SolrQueryFactory {
    37 
     35public class SolrFacetQueryFactoryImpl implements SolrFacetQueryFactory {
     36   
    3837    private static final String SOLR_SEARCH_ALL = "*:*";
    39     private final SolrQuery countQuery;
    40     private final VloConfig config;
    41 
    42     public SolrQueryFactoryImpl(VloConfig config) {
    43         this.config = config;
     38    private final SolrQuery facetCountQuery;
     39    private final String[] facets;
     40   
     41    /**
     42     *
     43     * @param facets names of facets to include in query
     44     */
     45    public SolrFacetQueryFactoryImpl(List<String> facets) {
     46        this.facets = facets.toArray(new String[facets.size()]);
    4447
    4548        // create the query used to count facets (will never change)
    46         countQuery = getDefaultFacetQuery();
    47         countQuery.setRows(0);
     49        facetCountQuery = getDefaultFacetQuery();
     50        facetCountQuery.setRows(0);
    4851    }
    49 
     52   
    5053    @Override
    5154    public SolrQuery createFacetQuery(QueryFacetsSelection queryFacetsSelections) {
     
    5457        return query;
    5558    }
    56 
     59   
    5760    @Override
    5861    public SolrQuery createDocumentQuery(QueryFacetsSelection selection, int first, int count) {
     
    6366        return query;
    6467    }
    65 
     68   
    6669    protected void addQueryFacetParameters(final SolrQuery query, QueryFacetsSelection queryFacetsSelections) {
    6770        final String queryString = queryFacetsSelections.getQuery();
    68 
     71       
    6972        if (queryString == null) {
    7073            query.setQuery(SOLR_SEARCH_ALL);
     
    7275            query.setQuery(ClientUtils.escapeQueryChars(queryString));
    7376        }
    74 
    75         Map<String, Collection<String>> selections = queryFacetsSelections.getSelection();
    76 
     77       
     78        final Map<String, Collection<String>> selections = queryFacetsSelections.getSelection();
    7779        if (selections != null) {
    7880            final List<String> encodedQueries = new ArrayList(selections.size()); // assuming every facet has one selection, most common scenario
     
    8991        }
    9092    }
    91 
     93   
    9294    private SolrQuery getDefaultFacetQuery() {
    9395        SolrQuery query = new SolrQuery();
     
    9597        query.setFacet(true);
    9698        query.setFacetMinCount(1);
    97         query.addFacetField(config.getFacetFields());
     99        query.addFacetField(facets);
    98100        return query;
    99101    }
    100 
     102   
    101103    private SolrQuery getDefaultDocumentQuery() {
    102104        SolrQuery query = new SolrQuery();
     
    105107        return query;
    106108    }
    107 
     109   
    108110    @Override
    109111    public synchronized SolrQuery createCountFacetsQuery() {
    110         return countQuery;
     112        return facetCountQuery;
    111113    }
    112 
     114   
    113115}
  • vlo/branches/vlo-3.0/vlo-web-app/src/test/java/eu/clarin/cmdi/vlo/service/impl/SolrFacetQueryFactoryImplTest.java

    r4519 r4565  
    1717package eu.clarin.cmdi.vlo.service.impl;
    1818
    19 import eu.clarin.cmdi.vlo.config.VloConfig;
    2019import eu.clarin.cmdi.vlo.pojo.QueryFacetsSelection;
    2120import java.util.Arrays;
     
    3534 * @author twagoo
    3635 */
    37 public class SolrQueryFactoryImplTest {
     36public class SolrFacetQueryFactoryImplTest {
    3837
    39     public static final String[] FACET_FIELDS = new String[]{"facet1", "facet2", "facet3"};
     38    public static final List<String> FACET_FIELDS = Arrays.asList("facet1", "facet2", "facet3");
    4039
    4140    /**
    4241     * static because it doesn't carry state
    4342     */
    44     private static SolrQueryFactoryImpl instance;
     43    private static SolrFacetQueryFactoryImpl instance;
    4544
    4645    @BeforeClass
    4746    public static void setUpClass() {
    48         instance = new SolrQueryFactoryImpl(new VloConfig() {
    49 
    50             @Override
    51             public String[] getFacetFields() {
    52                 return FACET_FIELDS;
    53             }
    54 
    55         });
     47        instance = new SolrFacetQueryFactoryImpl(FACET_FIELDS);
    5648    }
    5749
     
    146138    public void testCreateCountFacetsQuery() {
    147139        SolrQuery query = instance.createCountFacetsQuery();
    148         assertArrayEquals(FACET_FIELDS, query.getFacetFields());
     140        assertArrayEquals(FACET_FIELDS.toArray(), query.getFacetFields());
    149141    }
    150142
Note: See TracChangeset for help on using the changeset viewer.