Skip to content

Commit 12d9f4f

Browse files
author
Luc Boutier
committed
- Merge changes from Pull-Request #6
- Fix aggregation generation and cleanup dead code - Update dependencies versions
1 parent d26e1d0 commit 12d9f4f

File tree

6 files changed

+38
-71
lines changed

6 files changed

+38
-71
lines changed

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

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010

1111
import org.elasticsearch.annotation.*;
1212
import org.elasticsearch.annotation.query.*;
13-
import org.elasticsearch.common.collect.Maps;
1413
import org.elasticsearch.common.logging.ESLogger;
1514
import org.elasticsearch.common.logging.Loggers;
1615
import org.elasticsearch.mapping.parser.*;
@@ -268,7 +267,7 @@ private void processFacetAnnotation(List<IFacetBuilderHelper> classFacets, List<
268267
String nestedPath = indexable.getAnnotation(NestedObject.class) == null ? null : esFieldName;
269268
String filterPath = getFilterPath(path, esFieldName);
270269

271-
IFacetBuilderHelper facetBuilderHelper = new TermsFacetBuilderHelper(isAnalyzed, nestedPath, filterPath, termsFacet);
270+
IFacetBuilderHelper facetBuilderHelper = new TermsAggregationBuilderHelper(isAnalyzed, nestedPath, filterPath, termsFacet);
272271
classFacets.add(facetBuilderHelper);
273272
if (classFilters.contains(facetBuilderHelper)) {
274273
classFilters.remove(facetBuilderHelper);
@@ -280,7 +279,7 @@ private void processFacetAnnotation(List<IFacetBuilderHelper> classFacets, List<
280279
}
281280
RangeFacet rangeFacet = indexable.getAnnotation(RangeFacet.class);
282281
if (rangeFacet != null) {
283-
IFacetBuilderHelper facetBuilderHelper = new RangeFacetBuilderHelper(null, esFieldName, rangeFacet);
282+
IFacetBuilderHelper facetBuilderHelper = new RangeAggregationBuilderHelper(null, esFieldName, rangeFacet);
284283
classFacets.add(facetBuilderHelper);
285284
if (classFilters.contains(facetBuilderHelper)) {
286285
classFilters.remove(facetBuilderHelper);

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

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

3-
import org.elasticsearch.search.facet.FacetBuilder;
3+
import org.elasticsearch.search.aggregations.AggregationBuilder;
44

55
/**
66
* Utility that build facet for an object.
@@ -13,5 +13,5 @@ public interface IFacetBuilderHelper extends IFilterBuilderHelper {
1313
*
1414
* @return The facet.
1515
*/
16-
FacetBuilder buildFacet();
16+
AggregationBuilder buildFacet();
1717
}

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

Lines changed: 10 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
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;
5+
96
import javax.annotation.Resource;
7+
108
import org.elasticsearch.action.count.CountRequestBuilder;
119
import org.elasticsearch.action.count.CountResponse;
1210
import org.elasticsearch.action.search.SearchRequestBuilder;
@@ -16,15 +14,10 @@
1614
import org.elasticsearch.common.collect.Maps;
1715
import org.elasticsearch.common.logging.ESLogger;
1816
import org.elasticsearch.common.logging.Loggers;
19-
import org.elasticsearch.index.query.BoolQueryBuilder;
20-
import org.elasticsearch.index.query.FilterBuilder;
21-
import org.elasticsearch.index.query.FilterBuilders;
22-
import org.elasticsearch.index.query.QueryBuilder;
23-
import org.elasticsearch.index.query.QueryBuilders;
17+
import org.elasticsearch.index.query.*;
2418
import org.elasticsearch.index.query.functionscore.ScoreFunctionBuilders;
2519
import org.elasticsearch.search.aggregations.AggregationBuilder;
2620
import org.elasticsearch.search.aggregations.AggregationBuilders;
27-
import org.elasticsearch.search.facet.FacetBuilder;
2821
import org.elasticsearch.search.sort.FieldSortBuilder;
2922
import org.elasticsearch.search.sort.SortBuilders;
3023
import org.elasticsearch.search.sort.SortOrder;
@@ -508,11 +501,10 @@ private void addAggregations(Map<String, String[]> filters, String className, Se
508501
if (aggregations.size() > 0) {
509502
AggregationBuilder aggregationBuilder;
510503

511-
if (filter == null){
504+
if (filter == null) {
512505
// In order to gather all unfiltered aggregations faceted results under one single parent aggregation, a Global Aggregation is used
513506
aggregationBuilder = AggregationBuilders.global("global_aggregation");
514-
}
515-
else {
507+
} else {
516508
// To include filters inside filtered aggregation results
517509
aggregationBuilder = AggregationBuilders.filters("filter_aggregation").filter(filter);
518510
}
@@ -579,30 +571,6 @@ private FilterBuilder getAndFilter(List<FilterBuilder> filters) {
579571
return FilterBuilders.andFilter(filters.toArray(new FilterBuilder[filters.size()]));
580572
}
581573

582-
/**
583-
* Create a list of facets for the given type.
584-
*
585-
* @param className The name of the class for which to create facets.
586-
* @param filters The set of facets to exclude from the facet creation.
587-
* @return a {@link List} of {@link FacetBuilder facet builders}.
588-
*/
589-
private List<FacetBuilder> buildFacets(String className, Set<String> filters) {
590-
final List<FacetBuilder> facetBuilders = new ArrayList<FacetBuilder>();
591-
592-
List<IFacetBuilderHelper> facetBuilderHelpers = mappingBuilder.getFacets(className);
593-
if (facetBuilderHelpers == null) {
594-
return facetBuilders;
595-
}
596-
597-
for (IFacetBuilderHelper facetBuilderHelper : facetBuilderHelpers) {
598-
if (filters == null || !filters.contains(facetBuilderHelper.getEsFieldName())) {
599-
facetBuilders.add(facetBuilderHelper.buildFacet());
600-
601-
}
602-
}
603-
return facetBuilders;
604-
}
605-
606574
/**
607575
* Create a list of aggregations counts for the given type.
608576
*
@@ -614,16 +582,16 @@ private List<AggregationBuilder> buildAggregations(String className, Set<String>
614582
final List<AggregationBuilder> aggregationBuilders = new ArrayList<AggregationBuilder>();
615583
List<IFacetBuilderHelper> facetBuilderHelpers = mappingBuilder.getFacets(className);
616584

617-
if(facetBuilderHelpers == null || facetBuilderHelpers.size() < 1 )
585+
if (facetBuilderHelpers == null || facetBuilderHelpers.size() < 1)
618586
return aggregationBuilders;
619587

620588
for (IFacetBuilderHelper facetBuilderHelper : facetBuilderHelpers) {
621-
if (filters == null || !filters.contains(facetBuilderHelper.getEsFieldName()))
622-
aggregationBuilders.add(AggregationBuilders.terms(facetBuilderHelper.getEsFieldName()).field(facetBuilderHelper.getEsFieldName()));
589+
if (filters == null || !filters.contains(facetBuilderHelper.getEsFieldName())) {
590+
aggregationBuilders.add(facetBuilderHelper.buildFacet());
591+
}
623592
}
624593

625594
return aggregationBuilders;
626-
627595
}
628596
}
629597
}

elasticsearch-mapping/src/main/java/org/elasticsearch/mapping/RangeFacetBuilderHelper.java renamed to elasticsearch-mapping/src/main/java/org/elasticsearch/mapping/RangeAggregationBuilderHelper.java

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,33 @@
11
package org.elasticsearch.mapping;
22

33
import org.elasticsearch.annotation.query.RangeFacet;
4-
import org.elasticsearch.search.facet.FacetBuilder;
5-
import org.elasticsearch.search.facet.range.RangeFacetBuilder;
4+
import org.elasticsearch.search.aggregations.AggregationBuilder;
5+
import org.elasticsearch.search.aggregations.AggregationBuilders;
6+
import org.elasticsearch.search.aggregations.bucket.range.RangeBuilder;
67

78
/**
8-
* Build a range facet.
9+
* Build a range facet aggregation.
910
*
1011
* @author luc boutier
1112
*/
12-
public class RangeFacetBuilderHelper extends RangeFilterBuilderHelper implements IFacetBuilderHelper {
13+
public class RangeAggregationBuilderHelper extends RangeFilterBuilderHelper implements IFacetBuilderHelper {
1314
private final double[] ranges;
1415

1516
/**
16-
* Initialize a {@link RangeFacetBuilderHelper} from the annotation that contains it's definition.
17+
* Initialize a {@link RangeAggregationBuilderHelper} from the annotation that contains it's definition.
1718
*
1819
* @param nestedPath The path to the nested object if any.
1920
* @param esFieldName The name of the field on which to apply the filter.
2021
* @param rangeFacetAnnotation The annotation that contains the range definition.
2122
*/
22-
public RangeFacetBuilderHelper(final String nestedPath, final String esFieldName, final RangeFacet rangeFacetAnnotation) {
23+
public RangeAggregationBuilderHelper(final String nestedPath, final String esFieldName, final RangeFacet rangeFacetAnnotation) {
2324
super(nestedPath, esFieldName, rangeFacetAnnotation.ranges());
2425
this.ranges = rangeFacetAnnotation.ranges();
2526
}
2627

2728
@Override
28-
public FacetBuilder buildFacet() {
29-
RangeFacetBuilder rangeFacetBuilder = new RangeFacetBuilder(getEsFieldName()).field(getEsFieldName()).addUnboundedFrom(this.ranges[0]);
29+
public AggregationBuilder buildFacet() {
30+
RangeBuilder rangeFacetBuilder = AggregationBuilders.range(getEsFieldName()).field(getEsFieldName()).addUnboundedFrom(this.ranges[0]);
3031
int i = 1;
3132
for (; i < this.ranges.length - 2; i += 2) {
3233
rangeFacetBuilder.addRange(this.ranges[i], this.ranges[i + 1]);
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
package org.elasticsearch.mapping;
22

33
import org.elasticsearch.annotation.query.TermsFacet;
4-
import org.elasticsearch.search.facet.FacetBuilder;
5-
import org.elasticsearch.search.facet.FacetBuilders;
4+
import org.elasticsearch.search.aggregations.AggregationBuilder;
5+
import org.elasticsearch.search.aggregations.AggregationBuilders;
6+
import org.elasticsearch.search.aggregations.bucket.terms.TermsBuilder;
67
import org.elasticsearch.search.facet.terms.TermsFacet.ComparatorType;
7-
import org.elasticsearch.search.facet.terms.TermsFacetBuilder;
88

99
/**
1010
* Build a term facet.
1111
*
1212
* @author luc boutier
1313
*/
14-
public class TermsFacetBuilderHelper extends TermsFilterBuilderHelper implements IFacetBuilderHelper {
14+
public class TermsAggregationBuilderHelper extends TermsFilterBuilderHelper implements IFacetBuilderHelper {
1515
private final int size;
1616
private final boolean allTerms;
1717
private final ComparatorType comparatorType;
18-
private final Object[] exclude;
18+
private final String[] exclude;
1919

2020
/**
2121
* Initialize from the configuration annotation.
@@ -25,7 +25,7 @@ public class TermsFacetBuilderHelper extends TermsFilterBuilderHelper implements
2525
* @param esFieldName The name of the field on which to apply the filter.
2626
* @param termsFacet the configuration annotation.
2727
*/
28-
public TermsFacetBuilderHelper(final boolean isAnalyzed, final String nestedPath, final String esFieldName, TermsFacet termsFacet) {
28+
public TermsAggregationBuilderHelper(final boolean isAnalyzed, final String nestedPath, final String esFieldName, TermsFacet termsFacet) {
2929
super(isAnalyzed, nestedPath, esFieldName);
3030
this.size = termsFacet.size();
3131
this.allTerms = termsFacet.allTerms();
@@ -34,12 +34,11 @@ public TermsFacetBuilderHelper(final boolean isAnalyzed, final String nestedPath
3434
}
3535

3636
@Override
37-
public FacetBuilder buildFacet() {
38-
TermsFacetBuilder termsFacetBuilder = FacetBuilders.termsFacet(getEsFieldName()).field(getEsFieldName()).allTerms(allTerms).order(comparatorType)
39-
.size(size);
40-
if (exclude.length > 0) {
41-
termsFacetBuilder.exclude(exclude);
37+
public AggregationBuilder buildFacet() {
38+
TermsBuilder termsBuilder = AggregationBuilders.terms(getEsFieldName()).field(getEsFieldName()).size(size);
39+
if (exclude != null) {
40+
termsBuilder.exclude(exclude);
4241
}
43-
return termsFacetBuilder;
42+
return termsBuilder;
4443
}
4544
}

pom.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@
1111

1212
<properties>
1313
<elasticsearch.version>1.7.0</elasticsearch.version>
14-
<jackson.version>2.3.1</jackson.version>
15-
<spring.version>3.1.0.RELEASE</spring.version>
16-
<junit.version>4.10</junit.version>
14+
<jackson.version>2.8.1</jackson.version>
15+
<spring.version>4.3.2.RELEASE</spring.version>
16+
<junit.version>4.12</junit.version>
1717

18-
<java.version>1.7</java.version>
18+
<java.version>1.8</java.version>
1919
<maven.compiler.version>2.3.2</maven.compiler.version>
2020
</properties>
2121

0 commit comments

Comments
 (0)