Skip to content

Commit 44fffb8

Browse files
[ALIEN-2975][ALIEN-2981] MetaProperties filter
All objects that have meta properties should be filtered using meta property values (Facets filters)
1 parent c4c4cc1 commit 44fffb8

File tree

3 files changed

+21
-12
lines changed

3 files changed

+21
-12
lines changed

elasticsearch-annotations/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>org.alien4cloud</groupId>
66
<artifactId>elasticsearch-mapping-parent</artifactId>
7-
<version>1.7.5</version>
7+
<version>1.7.6-SNAPSHOT</version>
88
</parent>
99

1010
<artifactId>elasticsearch-annotations</artifactId>

elasticsearch-mapping/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>org.alien4cloud</groupId>
66
<artifactId>elasticsearch-mapping-parent</artifactId>
7-
<version>1.7.5</version>
7+
<version>1.7.6-SNAPSHOT</version>
88
</parent>
99

1010
<artifactId>elasticsearch-mapping</artifactId>

elasticsearch-mapping/src/main/java/org/elasticsearch/mapping/QueryHelper.java

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
11
package org.elasticsearch.mapping;
22

3-
import java.util.ArrayList;
4-
import java.util.HashMap;
5-
import java.util.List;
6-
import java.util.Map;
3+
import java.util.*;
74
import java.util.Map.Entry;
8-
import java.util.Set;
95
import java.util.function.Supplier;
106

117
import javax.annotation.Resource;
@@ -187,6 +183,11 @@ public interface ISearchQueryBuilderHelper extends IFilterableQueryBuilderHelper
187183
*/
188184
ISearchQueryBuilderHelper facets();
189185

186+
/**
187+
* Set the aggregations for the given classes.
188+
*/
189+
ISearchQueryBuilderHelper facets(List<IFacetBuilderHelper> facetBuilderHelpers);
190+
190191
/**
191192
* Execute the given consumer to alter the search request builder.
192193
*
@@ -547,19 +548,24 @@ private String[][] includeExcludes(String fetchContext) {
547548

548549
@Override
549550
public QueryBuilderHelper facets() {
551+
return facets(new ArrayList<>());
552+
}
553+
554+
@Override
555+
public QueryBuilderHelper facets(List<IFacetBuilderHelper> facetBuilderHelpers) {
550556
Set<String> aggIds = Sets.newHashSet();
551557
for (Class<?> clazz : classes) {
552558
if (filters == null) {
553-
addAggregations(new HashMap(), clazz.getName(), searchRequestBuilder, aggIds);
559+
addAggregations(new HashMap(), clazz.getName(), searchRequestBuilder, aggIds,facetBuilderHelpers);
554560
} else {
555-
addAggregations(filters, clazz.getName(), searchRequestBuilder, aggIds);
561+
addAggregations(filters, clazz.getName(), searchRequestBuilder, aggIds,facetBuilderHelpers);
556562
}
557563
}
558564
return this;
559565
}
560566

561-
private void addAggregations(Map<String, String[]> filters, String className, SearchRequestBuilder searchRequestBuilder, Set<String> aggIds) {
562-
final List<AggregationBuilder> aggregations = buildAggregations(className, filters.keySet());
567+
private void addAggregations(Map<String, String[]> filters, String className, SearchRequestBuilder searchRequestBuilder, Set<String> aggIds,List<IFacetBuilderHelper> facetBuilderHelpers) {
568+
final List<AggregationBuilder> aggregations = buildAggregations(className, filters.keySet(),facetBuilderHelpers);
563569
for (AggregationBuilder aggregation : aggregations) {
564570
if (!aggIds.contains(aggregation.getName())) {
565571
aggIds.add(aggregation.getName());
@@ -575,10 +581,13 @@ private void addAggregations(Map<String, String[]> filters, String className, Se
575581
* @param filters The set of aggregations to exclude from the facet creation.
576582
* @return a {@link List} of {@link AggregationBuilder aggregation builders}.
577583
*/
578-
private List<AggregationBuilder> buildAggregations(String className, Set<String> filters) {
584+
private List<AggregationBuilder> buildAggregations(String className, Set<String> filters,List<IFacetBuilderHelper> externalHelpers) {
579585
final List<AggregationBuilder> aggregationBuilders = new ArrayList<AggregationBuilder>();
580586
List<IFacetBuilderHelper> facetBuilderHelpers = mappingBuilder.getFacets(className);
581587

588+
// Add external Helpers
589+
facetBuilderHelpers.addAll(externalHelpers);
590+
582591
if (facetBuilderHelpers == null || facetBuilderHelpers.size() < 1) {
583592
return aggregationBuilders;
584593
}

0 commit comments

Comments
 (0)