Package org.elasticsearch.index.query

Examples of org.elasticsearch.index.query.FilterBuilder


  @Override
  public Long getCount(String appid, String type, Map<String, ?> terms) {
    if (StringUtils.isBlank(type) || StringUtils.isBlank(appid) || terms == null || terms.isEmpty()) {
      return 0L;
    }
    FilterBuilder fb;
    if (terms.size() == 1) {
      String field = terms.keySet().iterator().next();
      if (StringUtils.isBlank(field) || terms.get(field) == null) {
        return 0L;
      }
View Full Code Here


    public void testDefaultGeoIsBroken() throws IOException {
        // Geo is slow by default :'(
        IndexService indexService = createIndex("test", SINGLE_SHARD_SETTINGS, "type", "gp", "type=geo_point");
        client().prepareIndex("test", "type").setSource("gp", "2,3").get();
        FilterBuilder filter = FilterBuilders.geoDistanceFilter("gp").distance(1000, DistanceUnit.KILOMETERS).point(3, 2);
        test(indexService, true, filter);

    }
View Full Code Here

    public void testIndexedGeoIsNotBroken() throws IOException {
        // Geo has a fast iterator when indexing lat,lon and using the "indexed" bbox optimization
        IndexService indexService = createIndex("test", SINGLE_SHARD_SETTINGS, "type", "gp", "type=geo_point,lat_lon=true");
        client().prepareIndex("test", "type").setSource("gp", "2,3").get();
        FilterBuilder filter = FilterBuilders.geoDistanceFilter("gp").distance(1000, DistanceUnit.KILOMETERS).point(3, 2).optimizeBbox("indexed");
        test(indexService, false, filter);
    }
View Full Code Here

    }

    public void testScriptIsBroken() throws IOException { //  by nature unfortunately
        IndexService indexService = createIndex("test", SINGLE_SHARD_SETTINGS, "type", "l", "type=long");
        client().prepareIndex("test", "type").setSource("l", 7).get();
        FilterBuilder filter = FilterBuilders.scriptFilter("doc['l'].value < 8");
        test(indexService, true, filter);
    }
View Full Code Here

    public void testCachedIsNotBroken() throws IOException {
        IndexService indexService = createIndex("test", SINGLE_SHARD_SETTINGS, "type", "l", "type=long");
        client().prepareIndex("test", "type").setSource("l", 7).get();
        // This filter is inherently slow but by caching it we pay the price at caching time, not iteration
        FilterBuilder filter = FilterBuilders.scriptFilter("doc['l'].value < 8").cache(true);
        test(indexService, false, filter);
    }
View Full Code Here

    public void testOr() throws IOException {
        IndexService indexService = createIndex("test", SINGLE_SHARD_SETTINGS, "type", "l", "type=long");
        client().prepareIndex("test", "type").setSource("l", new long[] {7, 8}).get();
        // Or with fast clauses is fast
        FilterBuilder filter = FilterBuilders.orFilter(FilterBuilders.termFilter("l", 7), FilterBuilders.termFilter("l", 8));
        test(indexService, false, filter);
        // But if at least one clause is broken, it is broken
        filter = FilterBuilders.orFilter(FilterBuilders.termFilter("l", 7), FilterBuilders.scriptFilter("doc['l'].value < 8"));
        test(indexService, true, filter);
    }
View Full Code Here

    public void testAnd() throws IOException {
        IndexService indexService = createIndex("test", SINGLE_SHARD_SETTINGS, "type", "l", "type=long");
        client().prepareIndex("test", "type").setSource("l", new long[] {7, 8}).get();
        // And with fast clauses is fast
        FilterBuilder filter = FilterBuilders.andFilter(FilterBuilders.termFilter("l", 7), FilterBuilders.termFilter("l", 8));
        test(indexService, false, filter);
        // If at least one clause is 'fast' and the other clauses supports random-access, it is still fast
        filter = FilterBuilders.andFilter(FilterBuilders.termFilter("l", 7).cache(randomBoolean()), FilterBuilders.scriptFilter("doc['l'].value < 8"));
        test(indexService, false, filter);
        // However if all clauses are broken, the and is broken
View Full Code Here

    // Apply the filters
    if (filters.size() == 1) {
      this.queryBuilder = QueryBuilders.filteredQuery(unfilteredQuery, filters.get(0));
    } else if (filters.size() > 1) {
      FilterBuilder andFilter = FilterBuilders.andFilter(filters.toArray(new FilterBuilder[filters.size()]));
      this.queryBuilder = QueryBuilders.filteredQuery(unfilteredQuery, andFilter);
    }

  }
View Full Code Here

TOP

Related Classes of org.elasticsearch.index.query.FilterBuilder

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.