Changeset 4565
- Timestamp:
- 02/25/14 14:25:15 (10 years ago)
- 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 3 3 import java.io.UnsupportedEncodingException; 4 4 import java.net.URLEncoder; 5 import java.util.ArrayList; 5 6 import java.util.List; 6 7 import javax.xml.bind.annotation.XmlElement; … … 104 105 */ 105 106 @XmlElementWrapper(name = "facetFields") 106 private String[] facetField = {"", "", ""};107 private List<String> facetField = new ArrayList<String>(); 107 108 108 109 // test related parameters … … 689 690 * @return the value 690 691 */ 691 public String[]getFacetFields() {692 public List<String> getFacetFields() { 692 693 return facetField; 693 694 } … … 701 702 * @param param the value, a list of facet fields 702 703 */ 703 public void setFacetFields( String[]param) {704 public void setFacetFields(List<String> param) { 704 705 facetField = param; 705 706 } -
vlo/branches/vlo-3.0/vlo-commons/src/test/java/eu/clarin/cmdi/vlo/config/DefaultVloConfigFactoryTest.java
r4517 r4565 5 5 import java.net.URLEncoder; 6 6 import java.util.ArrayList; 7 import java.util.Arrays; 7 8 import java.util.List; 8 9 import static org.junit.Assert.*; … … 678 679 System.out.println("getFacetFields"); 679 680 680 String[] expResult = {681 List<String> expResult = Arrays.asList( 681 682 "collection", 682 683 "language", … … 691 692 "dataProvider", 692 693 "nationalProject", 693 "keywords" };694 695 String[]result = config.getFacetFields();696 697 assert ArrayEquals(expResult, result);694 "keywords"); 695 696 List<String> result = config.getFacetFields(); 697 698 assertEquals(expResult, result); 698 699 } 699 700 … … 706 707 System.out.println("setFacetFields"); 707 708 708 String[] expResult = {709 List<String> expResult = Arrays.asList( 709 710 "collection", 710 711 "language", … … 719 720 "dataProvider", 720 721 "nationalProject", 721 "keywords" };722 "keywords"); 722 723 723 724 config.setFacetFields(expResult); 724 725 725 String result[]= config.getFacetFields();726 727 assert ArrayEquals(expResult, result);726 List<String> result = config.getFacetFields(); 727 728 assertEquals(expResult, result); 728 729 } 729 730 -
vlo/branches/vlo-3.0/vlo-commons/src/test/java/eu/clarin/cmdi/vlo/config/VloConfigMarshallerTest.java
r4517 r4565 56 56 assertEquals("http://localhost:8080/vlo_solr/", config.getSolrUrl()); 57 57 assertEquals(3, config.getDataRoots().size()); 58 assertEquals(13, config.getFacetFields(). length);58 assertEquals(13, config.getFacetFields().size()); 59 59 } 60 60 … … 67 67 config.setSolrUrl("http://server/solr"); 68 68 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")); 70 70 final StringWriter sw = new StringWriter(); 71 71 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 21 21 import eu.clarin.cmdi.vlo.service.SearchResultsDao; 22 22 import eu.clarin.cmdi.vlo.service.SolrDocumentService; 23 import eu.clarin.cmdi.vlo.service.Solr QueryFactory;23 import eu.clarin.cmdi.vlo.service.SolrFacetQueryFactory; 24 24 import eu.clarin.cmdi.vlo.service.impl.SearchResultsDaoImpl; 25 25 import eu.clarin.cmdi.vlo.service.impl.SolrDocumentServiceImpl; 26 26 import eu.clarin.cmdi.vlo.service.impl.SolrFacetFieldsService; 27 import eu.clarin.cmdi.vlo.service.impl.Solr QueryFactoryImpl;27 import eu.clarin.cmdi.vlo.service.impl.SolrFacetQueryFactoryImpl; 28 28 import java.io.IOException; 29 29 import org.apache.solr.client.solrj.SolrServer; … … 84 84 85 85 @Bean 86 public Solr QueryFactory queryFactory() {87 return new Solr QueryFactoryImpl(vloConfig());86 public SolrFacetQueryFactory queryFactory() { 87 return new SolrFacetQueryFactoryImpl(vloConfig().getFacetFields()); 88 88 } 89 89 -
vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/service/SolrFacetQueryFactory.java
r4530 r4565 26 26 * @author twagoo 27 27 */ 28 public interface Solr QueryFactory {28 public interface SolrFacetQueryFactory { 29 29 30 30 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 55 55 // present the facets from the config file as a list to a new set 56 56 Set<String> facetsDefined; 57 facetsDefined = new HashSet<String>( Arrays.asList(config.getFacetFields()));57 facetsDefined = new HashSet<String>(config.getFacetFields()); 58 58 59 59 // 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 20 20 import eu.clarin.cmdi.vlo.service.SearchResultsDao; 21 21 import eu.clarin.cmdi.vlo.service.SolrDocumentService; 22 import eu.clarin.cmdi.vlo.service.Solr QueryFactory;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 QueryFactory queryFatory;34 private final SolrFacetQueryFactory queryFatory; 35 35 36 public SolrDocumentServiceImpl(SearchResultsDao searchResultsDao, Solr QueryFactory queryFatory) {36 public SolrDocumentServiceImpl(SearchResultsDao searchResultsDao, SolrFacetQueryFactory 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/SolrFacetFieldsService.java
r4520 r4565 20 20 import eu.clarin.cmdi.vlo.service.FacetFieldsService; 21 21 import eu.clarin.cmdi.vlo.service.SearchResultsDao; 22 import eu.clarin.cmdi.vlo.service.Solr QueryFactory;22 import eu.clarin.cmdi.vlo.service.SolrFacetQueryFactory; 23 23 import java.util.List; 24 24 import org.apache.solr.client.solrj.response.FacetField; … … 33 33 34 34 private final SearchResultsDao searchResultsDao; 35 private final Solr QueryFactory queryFatory;35 private final SolrFacetQueryFactory queryFatory; 36 36 37 37 /** … … 40 40 * @param queryFatory factory to use to construct facet queries 41 41 */ 42 public SolrFacetFieldsService(SearchResultsDao searchResultsDao, Solr QueryFactory queryFatory) {42 public SolrFacetFieldsService(SearchResultsDao searchResultsDao, SolrFacetQueryFactory queryFatory) { 43 43 this.searchResultsDao = searchResultsDao; 44 44 this.queryFatory = queryFatory; -
vlo/branches/vlo-3.0/vlo-web-app/src/main/java/eu/clarin/cmdi/vlo/service/impl/SolrFacetQueryFactoryImpl.java
r4543 r4565 18 18 19 19 import eu.clarin.cmdi.vlo.FacetConstants; 20 import eu.clarin.cmdi.vlo.config.VloConfig; 21 import eu.clarin.cmdi.vlo.service.SolrQueryFactory; 20 import eu.clarin.cmdi.vlo.service.SolrFacetQueryFactory; 22 21 import eu.clarin.cmdi.vlo.pojo.QueryFacetsSelection; 23 22 import java.util.ArrayList; … … 34 33 * @author twagoo 35 34 */ 36 public class Solr QueryFactoryImpl implements SolrQueryFactory {37 35 public class SolrFacetQueryFactoryImpl implements SolrFacetQueryFactory { 36 38 37 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()]); 44 47 45 48 // create the query used to count facets (will never change) 46 countQuery = getDefaultFacetQuery();47 countQuery.setRows(0);49 facetCountQuery = getDefaultFacetQuery(); 50 facetCountQuery.setRows(0); 48 51 } 49 52 50 53 @Override 51 54 public SolrQuery createFacetQuery(QueryFacetsSelection queryFacetsSelections) { … … 54 57 return query; 55 58 } 56 59 57 60 @Override 58 61 public SolrQuery createDocumentQuery(QueryFacetsSelection selection, int first, int count) { … … 63 66 return query; 64 67 } 65 68 66 69 protected void addQueryFacetParameters(final SolrQuery query, QueryFacetsSelection queryFacetsSelections) { 67 70 final String queryString = queryFacetsSelections.getQuery(); 68 71 69 72 if (queryString == null) { 70 73 query.setQuery(SOLR_SEARCH_ALL); … … 72 75 query.setQuery(ClientUtils.escapeQueryChars(queryString)); 73 76 } 74 75 Map<String, Collection<String>> selections = queryFacetsSelections.getSelection(); 76 77 78 final Map<String, Collection<String>> selections = queryFacetsSelections.getSelection(); 77 79 if (selections != null) { 78 80 final List<String> encodedQueries = new ArrayList(selections.size()); // assuming every facet has one selection, most common scenario … … 89 91 } 90 92 } 91 93 92 94 private SolrQuery getDefaultFacetQuery() { 93 95 SolrQuery query = new SolrQuery(); … … 95 97 query.setFacet(true); 96 98 query.setFacetMinCount(1); 97 query.addFacetField( config.getFacetFields());99 query.addFacetField(facets); 98 100 return query; 99 101 } 100 102 101 103 private SolrQuery getDefaultDocumentQuery() { 102 104 SolrQuery query = new SolrQuery(); … … 105 107 return query; 106 108 } 107 109 108 110 @Override 109 111 public synchronized SolrQuery createCountFacetsQuery() { 110 return countQuery;112 return facetCountQuery; 111 113 } 112 114 113 115 } -
vlo/branches/vlo-3.0/vlo-web-app/src/test/java/eu/clarin/cmdi/vlo/service/impl/SolrFacetQueryFactoryImplTest.java
r4519 r4565 17 17 package eu.clarin.cmdi.vlo.service.impl; 18 18 19 import eu.clarin.cmdi.vlo.config.VloConfig;20 19 import eu.clarin.cmdi.vlo.pojo.QueryFacetsSelection; 21 20 import java.util.Arrays; … … 35 34 * @author twagoo 36 35 */ 37 public class Solr QueryFactoryImplTest {36 public class SolrFacetQueryFactoryImplTest { 38 37 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"); 40 39 41 40 /** 42 41 * static because it doesn't carry state 43 42 */ 44 private static Solr QueryFactoryImpl instance;43 private static SolrFacetQueryFactoryImpl instance; 45 44 46 45 @BeforeClass 47 46 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); 56 48 } 57 49 … … 146 138 public void testCreateCountFacetsQuery() { 147 139 SolrQuery query = instance.createCountFacetsQuery(); 148 assertArrayEquals(FACET_FIELDS , query.getFacetFields());140 assertArrayEquals(FACET_FIELDS.toArray(), query.getFacetFields()); 149 141 } 150 142
Note: See TracChangeset
for help on using the changeset viewer.