sensorTypes.forEach(sensorType -> sensorQuery.should(typeQuery(sensorType + "_doc")));
private static QueryBuilder getTypeFilter(HasContainer has) { BiPredicate<?, ?> biPredicate = has.getBiPredicate(); if (biPredicate instanceof Compare) { QueryBuilder query = QueryBuilders.typeQuery(has.getValue().toString()); if (biPredicate.equals(Compare.eq)) return query; return QueryBuilders.boolQuery().mustNot(query); } else if (biPredicate instanceof Contains) { Collection values = (Collection) has.getValue(); BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery(); boolean within = biPredicate.equals(Contains.within); values.forEach(label -> { TypeQueryBuilder typeQueryBuilder = QueryBuilders.typeQuery(label.toString()); if (within) boolQueryBuilder.should(typeQueryBuilder); else boolQueryBuilder.mustNot(typeQueryBuilder); }); return boolQueryBuilder; } else throw new IllegalArgumentException("predicate not supported by unipop: " + biPredicate.toString()); }
private void delete( final String index, final String type, final String field, final String fieldValue) { try { DeleteByQueryAction.INSTANCE .newRequestBuilder(esResource.getClient()) .filter( QueryBuilders.boolQuery() .must(QueryBuilders.matchQuery(field, fieldValue)) .must(QueryBuilders.typeQuery(type))) .source(index) .get(); } catch (final Exception ee) { getMonitor().error("Couldn't delete from Elasticsearch", ee); } }