Example usage for org.apache.solr.common.params StatsParams STATS_FACET

List of usage examples for org.apache.solr.common.params StatsParams STATS_FACET

Introduction

In this page you can find the example usage for org.apache.solr.common.params StatsParams STATS_FACET.

Prototype

String STATS_FACET

To view the source code for org.apache.solr.common.params StatsParams STATS_FACET.

Click Source Link

Usage

From source file:com.frank.search.solr.core.DefaultQueryParser.java

License:Apache License

private void processStatsOptions(SolrQuery solrQuery, Query query) {
    StatsOptions statsOptions = query.getStatsOptions();

    if (statsOptions == null || (CollectionUtils.isEmpty(statsOptions.getFields())
            && CollectionUtils.isEmpty(statsOptions.getFacets())
            && CollectionUtils.isEmpty(statsOptions.getSelectiveFacets()))) {
        return;/*w w w.j ava2s . co m*/
    }

    solrQuery.set(StatsParams.STATS, true);

    for (Field field : statsOptions.getFields()) {
        solrQuery.add(StatsParams.STATS_FIELD, field.getName());

        String selectiveCalcDistinctParam = CommonParams.FIELD + "." + field.getName() + "."
                + StatsParams.STATS_CALC_DISTINCT;
        Boolean selectiveCountDistincts = statsOptions.isSelectiveCalcDistincts(field);

        if (selectiveCountDistincts != null) {
            solrQuery.add(selectiveCalcDistinctParam, String.valueOf(selectiveCountDistincts.booleanValue()));
        }

    }

    for (Field field : statsOptions.getFacets()) {
        solrQuery.add(StatsParams.STATS_FACET, field.getName());
    }

    for (Entry<Field, Collection<Field>> entry : statsOptions.getSelectiveFacets().entrySet()) {

        Field field = entry.getKey();
        String prefix = CommonParams.FIELD + "." + field.getName() + ".";

        String paramName = prefix + StatsParams.STATS_FACET;
        for (Field facetField : entry.getValue()) {
            solrQuery.add(paramName, facetField.getName());
        }

    }

}

From source file:org.springframework.data.solr.core.DefaultQueryParserTests.java

License:Apache License

/**
 * @see DATASOLR-160/* www  .jav a2 s.c  om*/
 */
@Test
public void testConstructSolrQueryWithStatFacets() {
    StatsOptions statsOptions = new StatsOptions()//
            .addFacet(new SimpleField("field_1"))//
            .addFacet(new SimpleField("field_2"));

    SimpleQuery query = new SimpleQuery("*:*");
    query.setStatsOptions(statsOptions);

    SolrQuery solrQuery = queryParser.constructSolrQuery(query);

    List<String> facets = Arrays.asList(solrQuery.getParams(StatsParams.STATS_FACET));
    Collections.sort(facets);
    Assert.assertEquals(2, facets.size());
    Assert.assertEquals(Arrays.asList("field_1", "field_2"), facets);
}

From source file:org.springframework.data.solr.core.DefaultQueryParserTests.java

License:Apache License

/**
 * @see DATASOLR-160/*from   w  w w. ja  v  a  2 s .  c om*/
 */
@Test
public void testConstructSolrQueryWithStatFieldsAndFacets() {
    StatsOptions statsOptions = new StatsOptions()//
            .addField(new SimpleField("field_1"))//
            .addFacet(new SimpleField("field_2"));

    SimpleQuery query = new SimpleQuery("*:*");
    query.setStatsOptions(statsOptions);

    SolrQuery solrQuery = queryParser.constructSolrQuery(query);

    String[] fields = solrQuery.getParams(StatsParams.STATS_FIELD);
    String[] facets = solrQuery.getParams(StatsParams.STATS_FACET);

    Assert.assertEquals(1, fields.length);
    Assert.assertEquals(1, facets.length);
    Assert.assertEquals("field_1", fields[0]);
    Assert.assertEquals("field_2", facets[0]);
}

From source file:org.springframework.data.solr.core.DefaultQueryParserTests.java

License:Apache License

/**
 * @see DATASOLR-160/*w w  w  .jav a2s.c  o m*/
 */
@Test
public void testConstructSolrQueryWithSelectiveStatsFacet() {
    StatsOptions statsOptions = new StatsOptions()//
            .addField(new SimpleField("field_1"))//
            .addSelectiveFacet(new SimpleField("field_2"));

    SimpleQuery query = new SimpleQuery("*:*");
    query.setStatsOptions(statsOptions);

    SolrQuery solrQuery = queryParser.constructSolrQuery(query);

    String[] fields = solrQuery.getParams(StatsParams.STATS_FIELD);
    String[] facets = solrQuery.getParams(CommonParams.FIELD + ".field_1." + StatsParams.STATS_FACET);

    Assert.assertEquals(1, fields.length);
    Assert.assertEquals(1, facets.length);
    Assert.assertEquals("field_1", fields[0]);
    Assert.assertEquals("field_2", facets[0]);
}

From source file:org.springframework.data.solr.core.DefaultQueryParserTests.java

License:Apache License

/**
 * @see DATASOLR-160/*  ww  w .j  a  v  a 2s .  c  om*/
 */
@Test
public void testConstructSolrQueryWithStatsConfig() {
    StatsOptions statsOptions = new StatsOptions()//
            .addField(new SimpleField("field_1"))//
            .addSelectiveFacet(new SimpleField("field_1_1"))//
            .addSelectiveFacet(new SimpleField("field_1_2"))//
            .addField("field_2")//
            .addFacet("field_3");

    SimpleQuery query = new SimpleQuery("*:*");
    query.setStatsOptions(statsOptions);

    SolrQuery solrQuery = queryParser.constructSolrQuery(query);

    List<String> fields = Arrays.asList(solrQuery.getParams(StatsParams.STATS_FIELD));
    Collections.sort(fields);
    List<String> selectiveFacets = Arrays
            .asList(solrQuery.getParams(CommonParams.FIELD + ".field_1." + StatsParams.STATS_FACET));
    String[] facets = solrQuery.getParams(StatsParams.STATS_FACET);

    Assert.assertEquals(2, fields.size());
    Assert.assertEquals(2, selectiveFacets.size());
    Assert.assertEquals("field_1", fields.get(0));
    Assert.assertEquals("field_2", fields.get(1));
    Assert.assertEquals("field_1_1", selectiveFacets.get(0));
    Assert.assertEquals("field_1_2", selectiveFacets.get(1));
    Assert.assertEquals("field_3", facets[0]);
}