Skip to content

Commit c9ffc44

Browse files
mobrezaakonczak
authored andcommitted
DATAES-127 - Include total, other and missing count in TermResult
Include totalCount, otherCount and missingCount from TermsFacet in TermResult.
1 parent e80ddd2 commit c9ffc44

File tree

3 files changed

+98
-2
lines changed

3 files changed

+98
-2
lines changed

src/main/java/org/springframework/data/elasticsearch/core/facet/DefaultFacetMapper.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ private static FacetResult parseTerm(TermsFacet facet) {
5656
for (TermsFacet.Entry entry : facet.getEntries()) {
5757
entries.add(new Term(entry.getTerm().toString(), entry.getCount()));
5858
}
59-
return new TermResult(facet.getName(), entries);
59+
return new TermResult(facet.getName(), entries, facet.getTotalCount(), facet.getOtherCount(), facet.getMissingCount());
6060
}
6161

6262
private static FacetResult parseRange(RangeFacet facet) {

src/main/java/org/springframework/data/elasticsearch/core/facet/result/TermResult.java

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,17 +27,36 @@
2727
* @author Mohsin Husen
2828
* @author Artur Konczak
2929
* @author Jonathan Yan
30+
* @author Matija Obreza
3031
*/
3132
public class TermResult extends AbstractFacetResult {
3233

3334
private List<Term> terms;
35+
private long total;
36+
private long other;
37+
private long missing;
3438

35-
public TermResult(String name, List<Term> terms) {
39+
public TermResult(String name, List<Term> terms, long total, long other, long missing) {
3640
super(name, FacetType.term);
3741
this.terms = terms;
42+
this.total = total;
43+
this.other = other;
44+
this.missing = missing;
3845
}
3946

4047
public List<Term> getTerms() {
4148
return terms;
4249
}
50+
51+
public long getTotal() {
52+
return total;
53+
}
54+
55+
public long getOther() {
56+
return other;
57+
}
58+
59+
public long getMissing() {
60+
return missing;
61+
}
4362
}

src/test/java/org/springframework/data/elasticsearch/core/facet/ElasticsearchTemplateFacetTests.java

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,10 @@ public void shouldReturnFacetedAuthorsForGivenQueryWithDefaultOrder() {
102102
term = facet.getTerms().get(3);
103103
assertThat(term.getTerm(), is(JONATHAN_YAN));
104104
assertThat(term.getCount(), is(1));
105+
106+
assertThat(facet.getTotal(), is(10l));
107+
assertThat(facet.getOther(), is(0l));
108+
assertThat(facet.getMissing(), is(0l));
105109
}
106110

107111
@Test
@@ -129,6 +133,10 @@ public void shouldReturnFacetedAuthorsForGivenFilteredQuery() {
129133
term = facet.getTerms().get(2);
130134
assertThat(term.getTerm(), is(MOHSIN_HUSEN));
131135
assertThat(term.getCount(), is(1));
136+
137+
assertThat(facet.getTotal(), is(6l));
138+
assertThat(facet.getOther(), is(0l));
139+
assertThat(facet.getMissing(), is(0l));
132140
}
133141

134142
@Test
@@ -150,6 +158,10 @@ public void shouldExcludeTermsFromFacetedAuthorsForGivenQuery() {
150158
Term term = facet.getTerms().get(0);
151159
assertThat(term.getTerm(), is(MOHSIN_HUSEN));
152160
assertThat(term.getCount(), is(1));
161+
162+
assertThat(facet.getTotal(), is(6l));
163+
assertThat(facet.getOther(), is(5l));
164+
assertThat(facet.getMissing(), is(0l));
153165
}
154166

155167
@Test
@@ -180,6 +192,10 @@ public void shouldReturnFacetedAuthorsForGivenQueryOrderedByTerm() {
180192
term = facet.getTerms().get(3);
181193
assertThat(term.getTerm(), is(RIZWAN_IDREES));
182194
assertThat(term.getCount(), is(4));
195+
196+
assertThat(facet.getTotal(), is(10l));
197+
assertThat(facet.getOther(), is(0l));
198+
assertThat(facet.getMissing(), is(0l));
183199
}
184200

185201
@Test
@@ -210,6 +226,10 @@ public void shouldReturnFacetedAuthorsForGivenQueryOrderedByCountAsc() {
210226
term = facet.getTerms().get(3);
211227
assertThat(term.getTerm(), is(RIZWAN_IDREES));
212228
assertThat(term.getCount(), is(4));
229+
230+
assertThat(facet.getTotal(), is(10l));
231+
assertThat(facet.getOther(), is(0l));
232+
assertThat(facet.getMissing(), is(0l));
213233
}
214234

215235
@Test
@@ -238,6 +258,43 @@ public void shouldReturnFacetedYearsForGivenQuery() {
238258
term = facet.getTerms().get(2);
239259
assertThat(term.getTerm(), is(Integer.toString(YEAR_2002)));
240260
assertThat(term.getCount(), is(1));
261+
262+
assertThat(facet.getTotal(), is(6l));
263+
assertThat(facet.getOther(), is(0l));
264+
assertThat(facet.getMissing(), is(1l));
265+
}
266+
267+
@Test
268+
public void shouldReturnExistingFacetedYearsForGivenQuery() {
269+
270+
// given
271+
String facetName = "fyears";
272+
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
273+
.withFilter(FilterBuilders.notFilter(FilterBuilders.missingFilter("publishedYears")))
274+
.withFacet(new TermFacetRequestBuilder(facetName).applyQueryFilter().fields("publishedYears").descCount().build()).build();
275+
// when
276+
FacetedPage<ArticleEntity> result = elasticsearchTemplate.queryForPage(searchQuery, ArticleEntity.class);
277+
// then
278+
assertThat(result.getNumberOfElements(), is(equalTo(3)));
279+
280+
TermResult facet = (TermResult) result.getFacet(facetName);
281+
assertThat(facet.getTerms().size(), is(equalTo(3)));
282+
283+
Term term = facet.getTerms().get(0);
284+
assertThat(term.getTerm(), is(Integer.toString(YEAR_2000)));
285+
assertThat(term.getCount(), is(3));
286+
287+
term = facet.getTerms().get(1);
288+
assertThat(term.getTerm(), is(Integer.toString(YEAR_2001)));
289+
assertThat(term.getCount(), is(2));
290+
291+
term = facet.getTerms().get(2);
292+
assertThat(term.getTerm(), is(Integer.toString(YEAR_2002)));
293+
assertThat(term.getCount(), is(1));
294+
295+
assertThat(facet.getTotal(), is(6l));
296+
assertThat(facet.getOther(), is(0l));
297+
assertThat(facet.getMissing(), is(0l));
241298
}
242299

243300

@@ -283,6 +340,10 @@ public void shouldReturnSingleFacetOverYearsAndAuthorsForGivenQuery() {
283340
term = facet.getTerms().get(6);
284341
assertThat(term.getTerm(), is(RIZWAN_IDREES));
285342
assertThat(term.getCount(), is(4));
343+
344+
assertThat(facet.getTotal(), is(16l));
345+
assertThat(facet.getOther(), is(0l));
346+
assertThat(facet.getMissing(), is(1l));
286347
}
287348

288349
@Test
@@ -331,6 +392,10 @@ public void shouldReturnFacetedYearsAndFacetedAuthorsForGivenQuery() {
331392
stringTerm = stringFacet.getTerms().get(3);
332393
assertThat(stringTerm.getTerm(), is(RIZWAN_IDREES));
333394
assertThat(stringTerm.getCount(), is(4));
395+
396+
assertThat(stringFacet.getTotal(), is(10l));
397+
assertThat(stringFacet.getOther(), is(0l));
398+
assertThat(stringFacet.getMissing(), is(0l));
334399
}
335400

336401

@@ -360,6 +425,10 @@ public void shouldReturnFacetedYearsForNativeFacet() {
360425
term = facet.getTerms().get(2);
361426
assertThat(term.getTerm(), is(Integer.toString(YEAR_2002)));
362427
assertThat(term.getCount(), is(1));
428+
429+
assertThat(facet.getTotal(), is(6l));
430+
assertThat(facet.getOther(), is(0l));
431+
assertThat(facet.getMissing(), is(1l));
363432
}
364433

365434
@Test
@@ -381,6 +450,10 @@ public void shouldFilterResultByRegexForGivenQuery() {
381450
Term term = facet.getTerms().get(0);
382451
assertThat(term.getTerm(), is(ARTUR_KONCZAK));
383452
assertThat(term.getCount(), is(2));
453+
454+
assertThat(facet.getTotal(), is(6l));
455+
assertThat(facet.getOther(), is(4l));
456+
assertThat(facet.getMissing(), is(0l));
384457
}
385458

386459
@Test
@@ -398,6 +471,10 @@ public void shouldReturnAllTermsForGivenQuery() {
398471
TermResult facet = (TermResult) result.getFacet(facetName);
399472

400473
assertThat(facet.getTerms().size(), is(4));
474+
475+
assertThat(facet.getTotal(), is(6l));
476+
assertThat(facet.getOther(), is(0l));
477+
assertThat(facet.getMissing(), is(0l));
401478
}
402479

403480

0 commit comments

Comments
 (0)