Skip to content

Commit d4f2001

Browse files
committed
DATAES-14 - Dynamic Search Type Support
added searchType parameter to NativeSearchQueryBuilder
1 parent 08cdcc5 commit d4f2001

File tree

2 files changed

+18
-10
lines changed

2 files changed

+18
-10
lines changed

src/main/java/org/springframework/data/elasticsearch/core/query/NativeSearchQueryBuilder.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2013 the original author or authors.
2+
* Copyright 2013-2014 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -20,6 +20,7 @@
2020
import java.util.List;
2121

2222
import org.apache.commons.collections.CollectionUtils;
23+
import org.elasticsearch.action.search.SearchType;
2324
import org.elasticsearch.index.query.FilterBuilder;
2425
import org.elasticsearch.index.query.QueryBuilder;
2526
import org.elasticsearch.search.highlight.HighlightBuilder;
@@ -49,6 +50,7 @@ public class NativeSearchQueryBuilder {
4950
private float minScore;
5051
private Collection<String> ids;
5152
private String route;
53+
private SearchType searchType;
5254

5355
public NativeSearchQueryBuilder withQuery(QueryBuilder queryBuilder) {
5456
this.queryBuilder = queryBuilder;
@@ -110,6 +112,11 @@ public NativeSearchQueryBuilder withRoute(String route) {
110112
return this;
111113
}
112114

115+
public NativeSearchQueryBuilder withSearchType(SearchType searchType) {
116+
this.searchType = searchType;
117+
return this;
118+
}
119+
113120
public NativeSearchQuery build() {
114121
NativeSearchQuery nativeSearchQuery = new NativeSearchQuery(queryBuilder, filterBuilder, sortBuilders, highlightFields);
115122
if (pageable != null) {
@@ -144,6 +151,10 @@ public NativeSearchQuery build() {
144151
nativeSearchQuery.setRoute(route);
145152
}
146153

154+
if (searchType != null) {
155+
nativeSearchQuery.setSearchType(searchType);
156+
}
157+
147158
return nativeSearchQuery;
148159
}
149160
}

src/test/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplateTests.java

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1147,16 +1147,13 @@ public <T> FacetedPage<T> mapResults(SearchResponse response, Class<T> clazz, Pa
11471147
public void shouldIndexSampleEntityWithIndexAndTypeAtRuntime() {
11481148
// given
11491149
String documentId = randomNumeric(5);
1150-
SampleEntity sampleEntity = new SampleEntity();
1151-
sampleEntity.setId(documentId);
1152-
sampleEntity.setMessage("some message");
1153-
sampleEntity.setVersion(System.currentTimeMillis());
1150+
SampleEntity sampleEntity = new SampleEntityBuilder(documentId)
1151+
.message("some message")
1152+
.version(System.currentTimeMillis()).build();
11541153

1155-
IndexQuery indexQuery = new IndexQuery();
1156-
indexQuery.setId(documentId);
1157-
indexQuery.setIndexName(INDEX_NAME);
1158-
indexQuery.setType(TYPE_NAME);
1159-
indexQuery.setObject(sampleEntity);
1154+
IndexQuery indexQuery = new IndexQueryBuilder().withId(documentId)
1155+
.withIndexName(INDEX_NAME).withType(TYPE_NAME)
1156+
.withObject(sampleEntity).build();
11601157

11611158
elasticsearchTemplate.index(indexQuery);
11621159
elasticsearchTemplate.refresh(INDEX_NAME, true);

0 commit comments

Comments
 (0)