@Test
  public void testQuery() throws IOException {
    createIndex("query_facet");
    String query =
        "{\n"
            + "            \"facets\" : {\n"
            + "            \"wow_facet\" : {\n"
            + "                \"query\" : {\n"
            + "                    \"term\" : { \"tag\" : \"wow\" }\n"
            + "                }\n"
            + "            },\n"
            + "            \"none_user_facet\" : {\n"
            + "                \"query\" : {\n"
            + "                    \"term\" : { \"user\" : \"none\" }\n"
            + "                }\n"
            + "            }\n"
            + "        }\n"
            + "        }";

    for (int i = 0; i < 2; i++) {
      Index index =
          new Index.Builder("{\"tag\":\"wow\", \"user\":\"root\"}")
              .index("query_facet")
              .type("document")
              .refresh(true)
              .build();
      client.execute(index);
    }

    Index index =
        new Index.Builder("{\"tag\":\"test\", \"user\":\"none\"}")
            .index("query_facet")
            .type("document")
            .refresh(true)
            .build();
    client.execute(index);

    Search search = new Search.Builder(query).addIndex("query_facet").addType("document").build();
    SearchResult result = client.execute(search);
    List<QueryFacet> filterFacets = result.getFacets(QueryFacet.class);

    assertEquals(2, filterFacets.size());
    QueryFacet queryFacetFirst = filterFacets.get(0);

    assertEquals("wow_facet", queryFacetFirst.getName());
    assertEquals(2L, queryFacetFirst.getCount().longValue());

    QueryFacet queryFacetSecond = filterFacets.get(1);

    assertEquals("none_user_facet", queryFacetSecond.getName());
    assertEquals(1L, queryFacetSecond.getCount().longValue());
  }