Search in sources :

Example 1 with Count

use of org.apache.solr.client.solrj.response.IntervalFacet.Count in project lucene-solr by apache.

the class DistributedIntervalFacetingTest method testSolrJ.

private void testSolrJ() throws Exception {
    indexr("id", "0", "test_i_dv", "0", "test_s_dv", "AAA");
    indexr("id", "1", "test_i_dv", "1", "test_s_dv", "BBB");
    indexr("id", "2", "test_i_dv", "2", "test_s_dv", "AAA");
    indexr("id", "3", "test_i_dv", "3", "test_s_dv", "CCC");
    commit();
    QueryResponse response = controlClient.query(new SolrQuery("*:*"));
    assertEquals(4, response.getResults().getNumFound());
    SolrQuery q = new SolrQuery("*:*");
    String[] intervals = new String[] { "[0,1)", "[1,2)", "[2,3)", "[3,*)" };
    q.addIntervalFacets("test_i_dv", intervals);
    response = controlClient.query(q);
    assertEquals(1, response.getIntervalFacets().size());
    assertEquals("test_i_dv", response.getIntervalFacets().get(0).getField());
    assertEquals(4, response.getIntervalFacets().get(0).getIntervals().size());
    for (int i = 0; i < response.getIntervalFacets().get(0).getIntervals().size(); i++) {
        Count count = response.getIntervalFacets().get(0).getIntervals().get(i);
        assertEquals(intervals[i], count.getKey());
        assertEquals(1, count.getCount());
    }
    q = new SolrQuery("*:*");
    q.addIntervalFacets("test_i_dv", intervals);
    q.addIntervalFacets("test_s_dv", new String[] { "{!key='AAA'}[AAA,AAA]", "{!key='BBB'}[BBB,BBB]", "{!key='CCC'}[CCC,CCC]" });
    response = controlClient.query(q);
    assertEquals(2, response.getIntervalFacets().size());
    int stringIntervalIndex = "test_s_dv".equals(response.getIntervalFacets().get(0).getField()) ? 0 : 1;
    assertEquals("test_i_dv", response.getIntervalFacets().get(1 - stringIntervalIndex).getField());
    assertEquals("test_s_dv", response.getIntervalFacets().get(stringIntervalIndex).getField());
    for (int i = 0; i < response.getIntervalFacets().get(1 - stringIntervalIndex).getIntervals().size(); i++) {
        Count count = response.getIntervalFacets().get(1 - stringIntervalIndex).getIntervals().get(i);
        assertEquals(intervals[i], count.getKey());
        assertEquals(1, count.getCount());
    }
    List<Count> stringIntervals = response.getIntervalFacets().get(stringIntervalIndex).getIntervals();
    assertEquals(3, stringIntervals.size());
    assertEquals("AAA", stringIntervals.get(0).getKey());
    assertEquals(2, stringIntervals.get(0).getCount());
    assertEquals("BBB", stringIntervals.get(1).getKey());
    assertEquals(1, stringIntervals.get(1).getCount());
    assertEquals("CCC", stringIntervals.get(2).getKey());
    assertEquals(1, stringIntervals.get(2).getCount());
}
Also used : QueryResponse(org.apache.solr.client.solrj.response.QueryResponse) Count(org.apache.solr.client.solrj.response.IntervalFacet.Count) SolrQuery(org.apache.solr.client.solrj.SolrQuery)

Aggregations

SolrQuery (org.apache.solr.client.solrj.SolrQuery)1 Count (org.apache.solr.client.solrj.response.IntervalFacet.Count)1 QueryResponse (org.apache.solr.client.solrj.response.QueryResponse)1