Skip to content

Commit 08cdcc5

Browse files
committed
DATAES-14 - added option to choose different search types per query
1 parent b662838 commit 08cdcc5

File tree

3 files changed

+19
-1
lines changed

3 files changed

+19
-1
lines changed

src/main/java/org/springframework/data/elasticsearch/core/ElasticsearchTemplate.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -555,7 +555,7 @@ private SearchRequestBuilder prepareSearch(Query query) {
555555

556556
int startRecord = 0;
557557
SearchRequestBuilder searchRequestBuilder = client.prepareSearch(toArray(query.getIndices()))
558-
.setSearchType(DFS_QUERY_THEN_FETCH).setTypes(toArray(query.getTypes()));
558+
.setSearchType(query.getSearchType()).setTypes(toArray(query.getTypes()));
559559

560560
if (query.getPageable() != null) {
561561
startRecord = query.getPageable().getPageNumber() * query.getPageable().getPageSize();

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import java.util.Collection;
2222
import java.util.List;
2323

24+
import org.elasticsearch.action.search.SearchType;
2425
import org.springframework.data.domain.Pageable;
2526
import org.springframework.data.domain.Sort;
2627
import org.springframework.util.Assert;
@@ -41,6 +42,7 @@ abstract class AbstractQuery implements Query {
4142
protected float minScore;
4243
protected Collection<String> ids;
4344
protected String route;
45+
protected SearchType searchType = SearchType.DFS_QUERY_THEN_FETCH;
4446

4547
@Override
4648
public Sort getSort() {
@@ -127,4 +129,12 @@ public String getRoute() {
127129
public void setRoute(String route) {
128130
this.route = route;
129131
}
132+
133+
public void setSearchType(SearchType searchType) {
134+
this.searchType = searchType;
135+
}
136+
137+
public SearchType getSearchType() {
138+
return searchType;
139+
}
130140
}

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import java.util.Collection;
1919
import java.util.List;
2020

21+
import org.elasticsearch.action.search.SearchType;
2122
import org.springframework.data.domain.PageRequest;
2223
import org.springframework.data.domain.Pageable;
2324
import org.springframework.data.domain.Sort;
@@ -130,4 +131,11 @@ public interface Query {
130131
* @return
131132
*/
132133
String getRoute();
134+
135+
136+
/**
137+
* Type of search
138+
* @return
139+
*/
140+
SearchType getSearchType();
133141
}

0 commit comments

Comments
 (0)