Skip to content

Commit f81323c

Browse files
author
Luc Boutier
committed
Support for nested prefix field.
1 parent 3ca2fd1 commit f81323c

File tree

4 files changed

+23
-5
lines changed

4 files changed

+23
-5
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.2</version>
7+
<version>1.7.3</version>
88
</parent>
99

1010
<artifactId>elasticsearch-annotations</artifactId>

elasticsearch-mapping/pom.xml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
1+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
23
<modelVersion>4.0.0</modelVersion>
34
<parent>
45
<groupId>org.alien4cloud</groupId>
56
<artifactId>elasticsearch-mapping-parent</artifactId>
6-
<version>1.7.2</version>
7+
<version>1.7.3</version>
78
</parent>
89

910
<artifactId>elasticsearch-mapping</artifactId>

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

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,7 @@ protected QueryBuilderHelper(MappingBuilder mappingBuilder, ElasticSearchClient
236236
}
237237

238238
protected QueryBuilderHelper(MappingBuilder mappingBuilder, ElasticSearchClient esClient, String prefixField, String searchPrefix) {
239+
this.prefixField = prefixField;
239240
this.queryBuilder = getOrMatchAll(searchPrefix, () -> QueryBuilders.prefixQuery(prefixField, searchPrefix));
240241
this.mappingBuilder = mappingBuilder;
241242
this.esClient = esClient;
@@ -259,9 +260,26 @@ private QueryBuilder getOrMatchAll(String search, Supplier<QueryBuilder> supplie
259260
public QueryBuilderHelper types(Class<?>... classes) {
260261
// you must set classes before you can set filters for them.
261262
this.classes = classes;
263+
wrapPrefixQueryIfNested();
262264
return this;
263265
}
264266

267+
private void wrapPrefixQueryIfNested() {
268+
if (prefixField == null) {
269+
return;
270+
}
271+
272+
List<IFilterBuilderHelper> filterBuilderHelpers = mappingBuilder.getFilters(classes[0].getName());
273+
for (IFilterBuilderHelper filterBuilderHelper : filterBuilderHelpers) {
274+
if (filterBuilderHelper.isNested() && prefixField.equals(filterBuilderHelper.getEsFieldName())) {
275+
this.queryBuilder = QueryBuilders.nestedQuery(filterBuilderHelper.getNestedPath(), queryBuilder);
276+
return;
277+
}
278+
}
279+
280+
return;
281+
}
282+
265283
@Override
266284
public QueryBuilderHelper alterQuery(QueryBuilderAdapter queryBuilderConsumer) {
267285
queryBuilder = queryBuilderConsumer.adapt(this.queryBuilder);
@@ -286,7 +304,6 @@ public CountResponse count(String[] indices, String... types) {
286304
countRequestBuilder.setTypes(types);
287305
}
288306
countRequestBuilder.setQuery(this.queryBuilder);
289-
String query = countRequestBuilder.toString();
290307
return countRequestBuilder.execute().actionGet();
291308
}
292309

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<modelVersion>4.0.0</modelVersion>
44
<groupId>org.alien4cloud</groupId>
55
<artifactId>elasticsearch-mapping-parent</artifactId>
6-
<version>1.7.2</version>
6+
<version>1.7.3</version>
77
<packaging>pom</packaging>
88

99
<name>Elastic search mapping parent</name>

0 commit comments

Comments
 (0)