List of usage examples for org.apache.solr.client.solrj SolrQuery getFacetFields
public String[] getFacetFields()
From source file:at.pagu.soldockr.core.QueryParserTest.java
License:Apache License
private void assertFactingPresent(SolrQuery solrQuery, String... expected) { Assert.assertArrayEquals(expected, solrQuery.getFacetFields()); }
From source file:com.idealista.solrmeter.QueryServiceSolrJImplTestCase.java
License:Apache License
public void testCreateQuery() throws QueryException { QueryServiceSolrJSpy service = new QueryServiceSolrJSpy(); SolrQuery query = service.createQuery("some query", "name:tomas", "/dismax", false, "name, surname", null, null, 10, 0, ""); assertEquals("some query", query.get("q")); assertEquals(new String[] { "name:tomas" }, query.getFilterQueries()); //assertEquals("/dismax", query.getQueryType()); assertEquals(new String[] { "name", "surname" }, query.getFacetFields()); service.createQuery(null, "name:tomas", "/dismax", false, "name, surname", null, null, 10, 0, ""); service.createQuery("", null, "/dismax", false, "name, surname", null, null, 10, 0, ""); service.createQuery("", "name:tomas", null, false, "name, surname", null, null, 10, 0, ""); service.createQuery("", "name:tomas", "/dismax", false, null, null, null, 10, 0, ""); service.createQuery("", "name:tomas", "/dismax", false, "name, surname", "name", "desc", 10, 0, ""); service.createQuery("", "name:tomas", "/dismax", false, "name, surname", "name", "asc", 10, 0, ""); service.createQuery("", "name:tomas", "/dismax", false, "name, surname", "name", "asc", 10, 0, null); service.createQuery("", "name:tomas", "/dismax", false, "name, surname", "name", "asc", null, 0, ""); service.createQuery("", "name:tomas", "/dismax", false, "name, surname", "name", "asc", 10, null, ""); }
From source file:com.plugtree.solrmeter.QueryServiceSolrJImplTestCase.java
License:Apache License
public void testCreateQuery() throws QueryException { QueryServiceSolrJSpy service = new QueryServiceSolrJSpy(); SolrQuery query = service.createQuery("some query", "name:tomas", "/dismax", false, "name, surname", null, null, 10, 0, ""); assertEquals("some query", query.get("q")); assertEquals(new String[] { "name:tomas" }, query.getFilterQueries()); assertEquals("/dismax", query.getQueryType()); assertEquals(new String[] { "name", "surname" }, query.getFacetFields()); service.createQuery(null, "name:tomas", "/dismax", false, "name, surname", null, null, 10, 0, ""); service.createQuery("", null, "/dismax", false, "name, surname", null, null, 10, 0, ""); service.createQuery("", "name:tomas", null, false, "name, surname", null, null, 10, 0, ""); service.createQuery("", "name:tomas", "/dismax", false, null, null, null, 10, 0, ""); service.createQuery("", "name:tomas", "/dismax", false, "name, surname", "name", "desc", 10, 0, ""); service.createQuery("", "name:tomas", "/dismax", false, "name, surname", "name", "asc", 10, 0, ""); service.createQuery("", "name:tomas", "/dismax", false, "name, surname", "name", "asc", 10, 0, null); service.createQuery("", "name:tomas", "/dismax", false, "name, surname", "name", "asc", null, 0, ""); service.createQuery("", "name:tomas", "/dismax", false, "name, surname", "name", "asc", 10, null, ""); }
From source file:edu.unc.lib.dl.ui.service.SolrQueryLayerService.java
License:Apache License
public void getChildrenCounts(List<BriefObjectMetadata> resultList, AccessGroupSet accessGroups, String countName, String queryAddendum, SolrQuery baseQuery) { long startTime = System.currentTimeMillis(); if (resultList == null || resultList.size() == 0) return;//from ww w . ja v a 2 s . c o m String ancestorPathField = solrSettings.getFieldName(SearchFieldKeys.ANCESTOR_PATH.name()); SolrQuery solrQuery; if (baseQuery == null) { // Create a base query since we didn't receive one solrQuery = new SolrQuery(); StringBuilder query = new StringBuilder("*:*"); try { // Add access restrictions to query addAccessRestrictions(query, accessGroups); } catch (AccessRestrictionException e) { // If the user doesn't have any access groups, they don't have access to anything, return null. LOG.error(e.getMessage()); return; } solrQuery.setStart(0); solrQuery.setRows(0); solrQuery.setQuery(query.toString()); } else { // Starting from a base query solrQuery = baseQuery.getCopy(); // Make sure we aren't returning any normal results solrQuery.setRows(0); // Remove all facet fields so we are only getting ancestor path if (solrQuery.getFacetFields() != null) { for (String facetField : solrQuery.getFacetFields()) { solrQuery.removeFacetField(facetField); } } } if (queryAddendum != null) { solrQuery.setQuery(solrQuery.getQuery() + " AND " + queryAddendum); } solrQuery.setFacet(true); solrQuery.setFacetMinCount(1); solrQuery.addFacetField(ancestorPathField); Integer countPageSize; try { countPageSize = new Integer(searchSettings.getProperty("search.facet.countPageSize")); } catch (NumberFormatException e) { countPageSize = 20; } solrQuery.add("f." + ancestorPathField + ".facet.limit", Integer.toString(Integer.MAX_VALUE)); // Sort by value rather than count so that earlier tiers will come first in case the result gets cut off solrQuery.setFacetSort("index"); java.util.Map<Integer, StringBuilder> tierQueryMap = new java.util.HashMap<Integer, StringBuilder>(); java.util.Map<Integer, List<BriefObjectMetadata>> containerMap = new java.util.HashMap<Integer, List<BriefObjectMetadata>>(); // Pare the list of ids we are searching for and assigning counts to down to just containers for (BriefObjectMetadata metadataObject : resultList) { if (metadataObject.getPath() != null && metadataObject.getContentModel() != null && metadataObject.getContentModel().contains(ContentModelHelper.Model.CONTAINER.toString())) { CutoffFacetNode highestTier = metadataObject.getPath().getHighestTierNode(); StringBuilder tierQuery = tierQueryMap.get(highestTier.getTier()); List<BriefObjectMetadata> containerObjects = containerMap.get(highestTier.getTier()); if (tierQuery == null) { tierQuery = new StringBuilder(); tierQueryMap.put(highestTier.getTier(), tierQuery); containerObjects = new ArrayList<BriefObjectMetadata>(); containerMap.put(highestTier.getTier(), containerObjects); } if (tierQuery.length() == 0) { tierQuery.append(ancestorPathField).append(":("); } else { tierQuery.append(" OR "); } tierQuery.append(SolrSettings.sanitize(highestTier.getSearchValue())).append(",*"); containerObjects.add(metadataObject); // If there are a lot of results, then do a partial lookup if (containerObjects.size() >= countPageSize) { tierQuery.append(")"); this.executeChildrenCounts(tierQuery, containerObjects, solrQuery, countName, highestTier.getTier()); LOG.info("Partial query done at " + System.currentTimeMillis() + " (" + (System.currentTimeMillis() - startTime) + ")"); containerMap.remove(highestTier.getTier()); tierQueryMap.remove(highestTier.getTier()); } } } Iterator<java.util.Map.Entry<Integer, StringBuilder>> queryIt = tierQueryMap.entrySet().iterator(); while (queryIt.hasNext()) { java.util.Map.Entry<Integer, StringBuilder> tierQueryEntry = queryIt.next(); tierQueryEntry.getValue().append(')'); this.executeChildrenCounts(tierQueryEntry.getValue(), containerMap.get(tierQueryEntry.getKey()), solrQuery, countName, tierQueryEntry.getKey()); } LOG.info("Child count query done at " + System.currentTimeMillis() + " (" + (System.currentTimeMillis() - startTime) + ")"); }
From source file:org.apache.metron.solr.matcher.SolrQueryMatcher.java
License:Apache License
@Override public boolean matches(Object o) { SolrQuery solrQuery = (SolrQuery) o; return Objects.equals(solrQuery.getStart(), expectedSolrQuery.getStart()) && Objects.equals(solrQuery.getRows(), expectedSolrQuery.getRows()) && Objects.equals(solrQuery.getQuery(), expectedSolrQuery.getQuery()) && Objects.equals(solrQuery.getSorts(), expectedSolrQuery.getSorts()) && Objects.equals(solrQuery.getFields(), expectedSolrQuery.getFields()) && Arrays.equals(solrQuery.getFacetFields(), expectedSolrQuery.getFacetFields()) && Objects.equals(solrQuery.get("collection"), expectedSolrQuery.get("collection")) && Objects.equals(solrQuery.get("stats"), expectedSolrQuery.get("stats")) && Objects.equals(solrQuery.get("stats.field"), expectedSolrQuery.get("stats.field")) && Objects.equals(solrQuery.get("facet"), expectedSolrQuery.get("facet")) && Objects.equals(solrQuery.get("facet.pivot"), expectedSolrQuery.get("facet.pivot")); }