Example usage for org.apache.solr.client.solrj SolrQuery getFacetFields

List of usage examples for org.apache.solr.client.solrj SolrQuery getFacetFields

Introduction

In this page you can find the example usage for org.apache.solr.client.solrj SolrQuery getFacetFields.

Prototype

public String[] getFacetFields() 

Source Link

Document

get the facet fields

Usage

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"));
}