Skip to content

Instantly share code, notes, and snippets.

@karussell
Created February 23, 2011 13:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save karussell/840447 to your computer and use it in GitHub Desktop.
Save karussell/840447 to your computer and use it in GitHub Desktop.
@Test public void testTermsStatsFacetsShouldAllowFilter() throws Exception {
try {
client.admin().indices().prepareDelete("test").execute().actionGet();
} catch (Exception e) {
// ignore
}
client.admin().indices().prepareCreate("test").execute().actionGet();
client.admin().cluster().prepareHealth().setWaitForGreenStatus().execute().actionGet();
for (int i = 0; i < 20; i++) {
client.prepareIndex("test", "type1", Integer.toString(i)).setSource("num", i % 10).execute().actionGet();
}
client.admin().indices().prepareRefresh().execute().actionGet();
XContentFilterBuilder filter = FilterBuilders.numericRangeFilter("range").gt(5);
AbstractFacetBuilder fb1 = termsStats("stats1").keyField("num").valueScript("doc.score").order(TermsStatsFacet.ComparatorType.COUNT);
fb1.facetFilter(filter);
AbstractFacetBuilder fb2 = termsStats("stats2").keyField("num").valueScript("doc.score").order(TermsStatsFacet.ComparatorType.TOTAL);
fb2.facetFilter(filter);
SearchResponse searchResponse = client.prepareSearch()
.setQuery(matchAllQuery())
.addFacet(fb1).addFacet(fb2).setExplain(true)
.execute().actionGet();
if (searchResponse.failedShards() > 0) {
logger.warn("Failed shards:");
for (ShardSearchFailure shardSearchFailure : searchResponse.shardFailures()) {
logger.warn("-> {}", shardSearchFailure);
}
}
//System.out.println("expl:"+searchResponse.hits().hits()[0].explanation().getValue());
assertThat(searchResponse.failedShards(), equalTo(0));
TermsStatsFacet facet = searchResponse.facets().facet("stats1");
assertThat(facet.entries().size(), equalTo(5));
facet = searchResponse.facets().facet("stats2");
assertThat(facet.entries().size(), equalTo(5));
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment