mirror of
https://github.com/spring-projects/spring-data-elasticsearch.git
synced 2025-06-29 15:22:11 +00:00
DATAES-688 - Remove unneeded SearchQuery subinterface.
Original PR: #343
This commit is contained in:
parent
62385edaa5
commit
26ab706e87
@ -24,16 +24,7 @@ import org.elasticsearch.cluster.metadata.AliasMetaData;
|
|||||||
import org.springframework.data.domain.Page;
|
import org.springframework.data.domain.Page;
|
||||||
import org.springframework.data.elasticsearch.core.convert.ElasticsearchConverter;
|
import org.springframework.data.elasticsearch.core.convert.ElasticsearchConverter;
|
||||||
import org.springframework.data.elasticsearch.core.mapping.ElasticsearchPersistentEntity;
|
import org.springframework.data.elasticsearch.core.mapping.ElasticsearchPersistentEntity;
|
||||||
import org.springframework.data.elasticsearch.core.query.AliasQuery;
|
import org.springframework.data.elasticsearch.core.query.*;
|
||||||
import org.springframework.data.elasticsearch.core.query.BulkOptions;
|
|
||||||
import org.springframework.data.elasticsearch.core.query.CriteriaQuery;
|
|
||||||
import org.springframework.data.elasticsearch.core.query.DeleteQuery;
|
|
||||||
import org.springframework.data.elasticsearch.core.query.GetQuery;
|
|
||||||
import org.springframework.data.elasticsearch.core.query.IndexQuery;
|
|
||||||
import org.springframework.data.elasticsearch.core.query.MoreLikeThisQuery;
|
|
||||||
import org.springframework.data.elasticsearch.core.query.SearchQuery;
|
|
||||||
import org.springframework.data.elasticsearch.core.query.StringQuery;
|
|
||||||
import org.springframework.data.elasticsearch.core.query.UpdateQuery;
|
|
||||||
import org.springframework.data.util.CloseableIterator;
|
import org.springframework.data.util.CloseableIterator;
|
||||||
import org.springframework.lang.Nullable;
|
import org.springframework.lang.Nullable;
|
||||||
|
|
||||||
@ -169,7 +160,7 @@ public interface ElasticsearchOperations {
|
|||||||
*/
|
*/
|
||||||
List<AliasMetaData> queryForAlias(String indexName);
|
List<AliasMetaData> queryForAlias(String indexName);
|
||||||
|
|
||||||
<T> T query(SearchQuery query, ResultsExtractor<T> resultsExtractor);
|
<T> T query(NativeSearchQuery query, ResultsExtractor<T> resultsExtractor);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Execute the query against elasticsearch and return the first returned object
|
* Execute the query against elasticsearch and return the first returned object
|
||||||
@ -205,7 +196,7 @@ public interface ElasticsearchOperations {
|
|||||||
* @param clazz
|
* @param clazz
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
<T> Page<T> queryForPage(SearchQuery query, Class<T> clazz);
|
<T> Page<T> queryForPage(NativeSearchQuery query, Class<T> clazz);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Execute the multi-search against elasticsearch and return result as {@link List} of {@link Page}
|
* Execute the multi-search against elasticsearch and return result as {@link List} of {@link Page}
|
||||||
@ -214,7 +205,7 @@ public interface ElasticsearchOperations {
|
|||||||
* @param clazz
|
* @param clazz
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
<T> List<Page<T>> queryForPage(List<SearchQuery> queries, Class<T> clazz);
|
<T> List<Page<T>> queryForPage(List<NativeSearchQuery> queries, Class<T> clazz);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Execute the multi-search against elasticsearch and return result as {@link List} of {@link Page}
|
* Execute the multi-search against elasticsearch and return result as {@link List} of {@link Page}
|
||||||
@ -223,7 +214,7 @@ public interface ElasticsearchOperations {
|
|||||||
* @param classes
|
* @param classes
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<Page<?>> queryForPage(List<SearchQuery> queries, List<Class<?>> classes);
|
List<Page<?>> queryForPage(List<NativeSearchQuery> queries, List<Class<?>> classes);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Execute the query against elasticsearch and return result as {@link Page}
|
* Execute the query against elasticsearch and return result as {@link Page}
|
||||||
@ -258,7 +249,7 @@ public interface ElasticsearchOperations {
|
|||||||
<T> CloseableIterator<T> stream(CriteriaQuery query, Class<T> clazz);
|
<T> CloseableIterator<T> stream(CriteriaQuery query, Class<T> clazz);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Executes the given {@link SearchQuery} against elasticsearch and return result as {@link CloseableIterator}.
|
* Executes the given {@link NativeSearchQuery} against elasticsearch and return result as {@link CloseableIterator}.
|
||||||
* <p>
|
* <p>
|
||||||
* Returns a {@link CloseableIterator} that wraps an Elasticsearch scroll context that needs to be closed in case of
|
* Returns a {@link CloseableIterator} that wraps an Elasticsearch scroll context that needs to be closed in case of
|
||||||
* error.
|
* error.
|
||||||
@ -269,7 +260,7 @@ public interface ElasticsearchOperations {
|
|||||||
* @return
|
* @return
|
||||||
* @since 1.3
|
* @since 1.3
|
||||||
*/
|
*/
|
||||||
<T> CloseableIterator<T> stream(SearchQuery query, Class<T> clazz);
|
<T> CloseableIterator<T> stream(NativeSearchQuery query, Class<T> clazz);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Execute the criteria query against elasticsearch and return result as {@link List}
|
* Execute the criteria query against elasticsearch and return result as {@link List}
|
||||||
@ -299,7 +290,7 @@ public interface ElasticsearchOperations {
|
|||||||
* @param <T>
|
* @param <T>
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
<T> List<T> queryForList(SearchQuery query, Class<T> clazz);
|
<T> List<T> queryForList(NativeSearchQuery query, Class<T> clazz);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Execute the multi search query against elasticsearch and return result as {@link List}
|
* Execute the multi search query against elasticsearch and return result as {@link List}
|
||||||
@ -309,7 +300,7 @@ public interface ElasticsearchOperations {
|
|||||||
* @param <T>
|
* @param <T>
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
default <T> List<List<T>> queryForList(List<SearchQuery> queries, Class<T> clazz) {
|
default <T> List<List<T>> queryForList(List<NativeSearchQuery> queries, Class<T> clazz) {
|
||||||
return queryForPage(queries, clazz).stream().map(Page::getContent).collect(Collectors.toList());
|
return queryForPage(queries, clazz).stream().map(Page::getContent).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -320,7 +311,7 @@ public interface ElasticsearchOperations {
|
|||||||
* @param classes
|
* @param classes
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
default List<List<?>> queryForList(List<SearchQuery> queries, List<Class<?>> classes) {
|
default List<List<?>> queryForList(List<NativeSearchQuery> queries, List<Class<?>> classes) {
|
||||||
return queryForPage(queries, classes).stream().map(Page::getContent).collect(Collectors.toList());
|
return queryForPage(queries, classes).stream().map(Page::getContent).collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -330,7 +321,7 @@ public interface ElasticsearchOperations {
|
|||||||
* @param query
|
* @param query
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
<T> List<String> queryForIds(SearchQuery query);
|
<T> List<String> queryForIds(NativeSearchQuery query);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* return number of elements found by given query
|
* return number of elements found by given query
|
||||||
@ -356,7 +347,7 @@ public interface ElasticsearchOperations {
|
|||||||
* @param clazz
|
* @param clazz
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
<T> long count(SearchQuery query, Class<T> clazz);
|
<T> long count(NativeSearchQuery query, Class<T> clazz);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* return number of elements found by given query
|
* return number of elements found by given query
|
||||||
@ -364,7 +355,7 @@ public interface ElasticsearchOperations {
|
|||||||
* @param query
|
* @param query
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
<T> long count(SearchQuery query);
|
<T> long count(NativeSearchQuery query);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Execute a multiGet against elasticsearch for the given ids
|
* Execute a multiGet against elasticsearch for the given ids
|
||||||
@ -373,7 +364,7 @@ public interface ElasticsearchOperations {
|
|||||||
* @param clazz
|
* @param clazz
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
<T> List<T> multiGet(SearchQuery searchQuery, Class<T> clazz);
|
<T> List<T> multiGet(NativeSearchQuery searchQuery, Class<T> clazz);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Index an object. Will do save or update
|
* Index an object. Will do save or update
|
||||||
@ -535,7 +526,7 @@ public interface ElasticsearchOperations {
|
|||||||
* @param clazz The class of entity to retrieve.
|
* @param clazz The class of entity to retrieve.
|
||||||
* @return The scan id for input query.
|
* @return The scan id for input query.
|
||||||
*/
|
*/
|
||||||
<T> ScrolledPage<T> startScroll(long scrollTimeInMillis, SearchQuery query, Class<T> clazz);
|
<T> ScrolledPage<T> startScroll(long scrollTimeInMillis, NativeSearchQuery query, Class<T> clazz);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns scrolled page for given query
|
* Returns scrolled page for given query
|
||||||
|
@ -349,28 +349,29 @@ public class ElasticsearchRestTemplate extends AbstractElasticsearchTemplate
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> AggregatedPage<T> queryForPage(SearchQuery query, Class<T> clazz) {
|
public <T> AggregatedPage<T> queryForPage(NativeSearchQuery query, Class<T> clazz) {
|
||||||
SearchResponse response = doSearch(prepareSearch(query, clazz), query);
|
SearchResponse response = doSearch(prepareSearch(query, clazz), query);
|
||||||
return elasticsearchConverter.mapResults(SearchDocumentResponse.from(response), clazz, query.getPageable());
|
return elasticsearchConverter.mapResults(SearchDocumentResponse.from(response), clazz, query.getPageable());
|
||||||
}
|
}
|
||||||
|
|
||||||
private <T> List<Page<T>> doMultiSearch(List<SearchQuery> queries, Class<T> clazz, MultiSearchRequest request) {
|
private <T> List<Page<T>> doMultiSearch(List<NativeSearchQuery> queries, Class<T> clazz, MultiSearchRequest request) {
|
||||||
MultiSearchResponse.Item[] items = getMultiSearchResult(request);
|
MultiSearchResponse.Item[] items = getMultiSearchResult(request);
|
||||||
List<Page<T>> res = new ArrayList<>(queries.size());
|
List<Page<T>> res = new ArrayList<>(queries.size());
|
||||||
int c = 0;
|
int c = 0;
|
||||||
for (SearchQuery query : queries) {
|
for (NativeSearchQuery query : queries) {
|
||||||
res.add(elasticsearchConverter.mapResults(SearchDocumentResponse.from(items[c++].getResponse()), clazz,
|
res.add(elasticsearchConverter.mapResults(SearchDocumentResponse.from(items[c++].getResponse()), clazz,
|
||||||
query.getPageable()));
|
query.getPageable()));
|
||||||
}
|
}
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<Page<?>> doMultiSearch(List<SearchQuery> queries, List<Class<?>> classes, MultiSearchRequest request) {
|
private List<Page<?>> doMultiSearch(List<NativeSearchQuery> queries, List<Class<?>> classes,
|
||||||
|
MultiSearchRequest request) {
|
||||||
MultiSearchResponse.Item[] items = getMultiSearchResult(request);
|
MultiSearchResponse.Item[] items = getMultiSearchResult(request);
|
||||||
List<Page<?>> res = new ArrayList<>(queries.size());
|
List<Page<?>> res = new ArrayList<>(queries.size());
|
||||||
int c = 0;
|
int c = 0;
|
||||||
Iterator<Class<?>> it = classes.iterator();
|
Iterator<Class<?>> it = classes.iterator();
|
||||||
for (SearchQuery query : queries) {
|
for (NativeSearchQuery query : queries) {
|
||||||
res.add(elasticsearchConverter.mapResults(SearchDocumentResponse.from(items[c++].getResponse()), it.next(),
|
res.add(elasticsearchConverter.mapResults(SearchDocumentResponse.from(items[c++].getResponse()), it.next(),
|
||||||
query.getPageable()));
|
query.getPageable()));
|
||||||
}
|
}
|
||||||
@ -390,26 +391,26 @@ public class ElasticsearchRestTemplate extends AbstractElasticsearchTemplate
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> List<Page<T>> queryForPage(List<SearchQuery> queries, Class<T> clazz) {
|
public <T> List<Page<T>> queryForPage(List<NativeSearchQuery> queries, Class<T> clazz) {
|
||||||
MultiSearchRequest request = new MultiSearchRequest();
|
MultiSearchRequest request = new MultiSearchRequest();
|
||||||
for (SearchQuery query : queries) {
|
for (NativeSearchQuery query : queries) {
|
||||||
request.add(prepareSearch(prepareSearch(query, clazz), query));
|
request.add(prepareSearch(prepareSearch(query, clazz), query));
|
||||||
}
|
}
|
||||||
return doMultiSearch(queries, clazz, request);
|
return doMultiSearch(queries, clazz, request);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Page<?>> queryForPage(List<SearchQuery> queries, List<Class<?>> classes) {
|
public List<Page<?>> queryForPage(List<NativeSearchQuery> queries, List<Class<?>> classes) {
|
||||||
MultiSearchRequest request = new MultiSearchRequest();
|
MultiSearchRequest request = new MultiSearchRequest();
|
||||||
Iterator<Class<?>> it = classes.iterator();
|
Iterator<Class<?>> it = classes.iterator();
|
||||||
for (SearchQuery query : queries) {
|
for (NativeSearchQuery query : queries) {
|
||||||
request.add(prepareSearch(prepareSearch(query, it.next()), query));
|
request.add(prepareSearch(prepareSearch(query, it.next()), query));
|
||||||
}
|
}
|
||||||
return doMultiSearch(queries, classes, request);
|
return doMultiSearch(queries, classes, request);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T query(SearchQuery query, ResultsExtractor<T> resultsExtractor) {
|
public <T> T query(NativeSearchQuery query, ResultsExtractor<T> resultsExtractor) {
|
||||||
SearchResponse response = doSearch(prepareSearch(query, Optional.ofNullable(query.getQuery()), null), query);
|
SearchResponse response = doSearch(prepareSearch(query, Optional.ofNullable(query.getQuery()), null), query);
|
||||||
return resultsExtractor.extract(response);
|
return resultsExtractor.extract(response);
|
||||||
}
|
}
|
||||||
@ -425,12 +426,12 @@ public class ElasticsearchRestTemplate extends AbstractElasticsearchTemplate
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> List<T> queryForList(SearchQuery query, Class<T> clazz) {
|
public <T> List<T> queryForList(NativeSearchQuery query, Class<T> clazz) {
|
||||||
return queryForPage(query, clazz).getContent();
|
return queryForPage(query, clazz).getContent();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> List<String> queryForIds(SearchQuery query) {
|
public <T> List<String> queryForIds(NativeSearchQuery query) {
|
||||||
SearchRequest request = prepareSearch(query, Optional.ofNullable(query.getQuery()), null);
|
SearchRequest request = prepareSearch(query, Optional.ofNullable(query.getQuery()), null);
|
||||||
request.source().query(query.getQuery());
|
request.source().query(query.getQuery());
|
||||||
if (query.getFilter() != null) {
|
if (query.getFilter() != null) {
|
||||||
@ -502,7 +503,7 @@ public class ElasticsearchRestTemplate extends AbstractElasticsearchTemplate
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> CloseableIterator<T> stream(SearchQuery query, Class<T> clazz) {
|
public <T> CloseableIterator<T> stream(NativeSearchQuery query, Class<T> clazz) {
|
||||||
long scrollTimeInMillis = TimeValue.timeValueMinutes(1).millis();
|
long scrollTimeInMillis = TimeValue.timeValueMinutes(1).millis();
|
||||||
return doStream(scrollTimeInMillis, startScroll(scrollTimeInMillis, query, clazz), clazz);
|
return doStream(scrollTimeInMillis, startScroll(scrollTimeInMillis, query, clazz), clazz);
|
||||||
}
|
}
|
||||||
@ -527,7 +528,7 @@ public class ElasticsearchRestTemplate extends AbstractElasticsearchTemplate
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> long count(SearchQuery searchQuery, Class<T> clazz) {
|
public <T> long count(NativeSearchQuery searchQuery, Class<T> clazz) {
|
||||||
QueryBuilder elasticsearchQuery = searchQuery.getQuery();
|
QueryBuilder elasticsearchQuery = searchQuery.getQuery();
|
||||||
QueryBuilder elasticsearchFilter = searchQuery.getFilter();
|
QueryBuilder elasticsearchFilter = searchQuery.getFilter();
|
||||||
|
|
||||||
@ -545,7 +546,7 @@ public class ElasticsearchRestTemplate extends AbstractElasticsearchTemplate
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> long count(SearchQuery query) {
|
public <T> long count(NativeSearchQuery query) {
|
||||||
return count(query, null);
|
return count(query, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -599,7 +600,7 @@ public class ElasticsearchRestTemplate extends AbstractElasticsearchTemplate
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> List<T> multiGet(SearchQuery searchQuery, Class<T> clazz) {
|
public <T> List<T> multiGet(NativeSearchQuery searchQuery, Class<T> clazz) {
|
||||||
return elasticsearchConverter.mapDocuments(DocumentAdapters.from(getMultiResponse(searchQuery, clazz)), clazz);
|
return elasticsearchConverter.mapDocuments(DocumentAdapters.from(getMultiResponse(searchQuery, clazz)), clazz);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -915,8 +916,8 @@ public class ElasticsearchRestTemplate extends AbstractElasticsearchTemplate
|
|||||||
request.indicesOptions(query.getIndicesOptions());
|
request.indicesOptions(query.getIndicesOptions());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (query instanceof SearchQuery) {
|
if (query instanceof NativeSearchQuery) {
|
||||||
SearchQuery searchQuery = (SearchQuery) query;
|
NativeSearchQuery searchQuery = (NativeSearchQuery) query;
|
||||||
|
|
||||||
if (searchQuery.getHighlightFields() != null || searchQuery.getHighlightBuilder() != null) {
|
if (searchQuery.getHighlightFields() != null || searchQuery.getHighlightBuilder() != null) {
|
||||||
HighlightBuilder highlightBuilder = searchQuery.getHighlightBuilder();
|
HighlightBuilder highlightBuilder = searchQuery.getHighlightBuilder();
|
||||||
@ -963,7 +964,7 @@ public class ElasticsearchRestTemplate extends AbstractElasticsearchTemplate
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private SearchResponse doScroll(SearchRequest request, SearchQuery searchQuery) {
|
private SearchResponse doScroll(SearchRequest request, NativeSearchQuery searchQuery) {
|
||||||
Assert.notNull(searchQuery.getIndices(), "No index defined for Query");
|
Assert.notNull(searchQuery.getIndices(), "No index defined for Query");
|
||||||
Assert.notNull(searchQuery.getTypes(), "No type define for Query");
|
Assert.notNull(searchQuery.getTypes(), "No type define for Query");
|
||||||
Assert.notNull(searchQuery.getPageable(), "Query.pageable is required for scan & scroll");
|
Assert.notNull(searchQuery.getPageable(), "Query.pageable is required for scan & scroll");
|
||||||
@ -993,7 +994,7 @@ public class ElasticsearchRestTemplate extends AbstractElasticsearchTemplate
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> ScrolledPage<T> startScroll(long scrollTimeInMillis, SearchQuery searchQuery, Class<T> clazz) {
|
public <T> ScrolledPage<T> startScroll(long scrollTimeInMillis, NativeSearchQuery searchQuery, Class<T> clazz) {
|
||||||
SearchResponse response = doScroll(prepareScroll(searchQuery, scrollTimeInMillis, clazz), searchQuery);
|
SearchResponse response = doScroll(prepareScroll(searchQuery, scrollTimeInMillis, clazz), searchQuery);
|
||||||
return elasticsearchConverter.mapResults(SearchDocumentResponse.from(response), clazz, null);
|
return elasticsearchConverter.mapResults(SearchDocumentResponse.from(response), clazz, null);
|
||||||
}
|
}
|
||||||
@ -1071,7 +1072,7 @@ public class ElasticsearchRestTemplate extends AbstractElasticsearchTemplate
|
|||||||
return queryForPage(new NativeSearchQueryBuilder().withQuery(moreLikeThisQueryBuilder).build(), clazz);
|
return queryForPage(new NativeSearchQueryBuilder().withQuery(moreLikeThisQueryBuilder).build(), clazz);
|
||||||
}
|
}
|
||||||
|
|
||||||
private SearchResponse doSearch(SearchRequest searchRequest, SearchQuery searchQuery) {
|
private SearchResponse doSearch(SearchRequest searchRequest, NativeSearchQuery searchQuery) {
|
||||||
prepareSearch(searchRequest, searchQuery);
|
prepareSearch(searchRequest, searchQuery);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@ -1081,7 +1082,7 @@ public class ElasticsearchRestTemplate extends AbstractElasticsearchTemplate
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private SearchRequest prepareSearch(SearchRequest searchRequest, SearchQuery searchQuery) {
|
private SearchRequest prepareSearch(SearchRequest searchRequest, NativeSearchQuery searchQuery) {
|
||||||
if (searchQuery.getFilter() != null) {
|
if (searchQuery.getFilter() != null) {
|
||||||
searchRequest.source().postFilter(searchQuery.getFilter());
|
searchRequest.source().postFilter(searchQuery.getFilter());
|
||||||
}
|
}
|
||||||
@ -1239,7 +1240,7 @@ public class ElasticsearchRestTemplate extends AbstractElasticsearchTemplate
|
|||||||
return prepareSearch(query, Optional.empty(), clazz);
|
return prepareSearch(query, Optional.empty(), clazz);
|
||||||
}
|
}
|
||||||
|
|
||||||
private <T> SearchRequest prepareSearch(SearchQuery query, Class<T> clazz) {
|
private <T> SearchRequest prepareSearch(NativeSearchQuery query, Class<T> clazz) {
|
||||||
setPersistentEntityIndexAndType(query, clazz);
|
setPersistentEntityIndexAndType(query, clazz);
|
||||||
return prepareSearch(query, Optional.ofNullable(query.getQuery()), clazz);
|
return prepareSearch(query, Optional.ofNullable(query.getQuery()), clazz);
|
||||||
}
|
}
|
||||||
|
@ -281,37 +281,38 @@ public class ElasticsearchTemplate extends AbstractElasticsearchTemplate
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> AggregatedPage<T> queryForPage(SearchQuery query, Class<T> clazz) {
|
public <T> AggregatedPage<T> queryForPage(NativeSearchQuery query, Class<T> clazz) {
|
||||||
SearchResponse response = doSearch(prepareSearch(query, clazz), query);
|
SearchResponse response = doSearch(prepareSearch(query, clazz), query);
|
||||||
return elasticsearchConverter.mapResults(SearchDocumentResponse.from(response), clazz, query.getPageable());
|
return elasticsearchConverter.mapResults(SearchDocumentResponse.from(response), clazz, query.getPageable());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> List<Page<T>> queryForPage(List<SearchQuery> queries, Class<T> clazz) {
|
public <T> List<Page<T>> queryForPage(List<NativeSearchQuery> queries, Class<T> clazz) {
|
||||||
MultiSearchRequest request = new MultiSearchRequest();
|
MultiSearchRequest request = new MultiSearchRequest();
|
||||||
for (SearchQuery query : queries) {
|
for (NativeSearchQuery query : queries) {
|
||||||
request.add(prepareSearch(prepareSearch(query, clazz), query));
|
request.add(prepareSearch(prepareSearch(query, clazz), query));
|
||||||
}
|
}
|
||||||
return doMultiSearch(queries, clazz, request);
|
return doMultiSearch(queries, clazz, request);
|
||||||
}
|
}
|
||||||
|
|
||||||
private <T> List<Page<T>> doMultiSearch(List<SearchQuery> queries, Class<T> clazz, MultiSearchRequest request) {
|
private <T> List<Page<T>> doMultiSearch(List<NativeSearchQuery> queries, Class<T> clazz, MultiSearchRequest request) {
|
||||||
MultiSearchResponse.Item[] items = getMultiSearchResult(request);
|
MultiSearchResponse.Item[] items = getMultiSearchResult(request);
|
||||||
List<Page<T>> res = new ArrayList<>(queries.size());
|
List<Page<T>> res = new ArrayList<>(queries.size());
|
||||||
int c = 0;
|
int c = 0;
|
||||||
for (SearchQuery query : queries) {
|
for (NativeSearchQuery query : queries) {
|
||||||
res.add(elasticsearchConverter.mapResults(SearchDocumentResponse.from(items[c++].getResponse()), clazz,
|
res.add(elasticsearchConverter.mapResults(SearchDocumentResponse.from(items[c++].getResponse()), clazz,
|
||||||
query.getPageable()));
|
query.getPageable()));
|
||||||
}
|
}
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<Page<?>> doMultiSearch(List<SearchQuery> queries, List<Class<?>> classes, MultiSearchRequest request) {
|
private List<Page<?>> doMultiSearch(List<NativeSearchQuery> queries, List<Class<?>> classes,
|
||||||
|
MultiSearchRequest request) {
|
||||||
MultiSearchResponse.Item[] items = getMultiSearchResult(request);
|
MultiSearchResponse.Item[] items = getMultiSearchResult(request);
|
||||||
List<Page<?>> res = new ArrayList<>(queries.size());
|
List<Page<?>> res = new ArrayList<>(queries.size());
|
||||||
int c = 0;
|
int c = 0;
|
||||||
Iterator<Class<?>> it = classes.iterator();
|
Iterator<Class<?>> it = classes.iterator();
|
||||||
for (SearchQuery query : queries) {
|
for (NativeSearchQuery query : queries) {
|
||||||
res.add(elasticsearchConverter.mapResults(SearchDocumentResponse.from(items[c++].getResponse()), it.next(),
|
res.add(elasticsearchConverter.mapResults(SearchDocumentResponse.from(items[c++].getResponse()), it.next(),
|
||||||
query.getPageable()));
|
query.getPageable()));
|
||||||
}
|
}
|
||||||
@ -327,18 +328,18 @@ public class ElasticsearchTemplate extends AbstractElasticsearchTemplate
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Page<?>> queryForPage(List<SearchQuery> queries, List<Class<?>> classes) {
|
public List<Page<?>> queryForPage(List<NativeSearchQuery> queries, List<Class<?>> classes) {
|
||||||
Assert.isTrue(queries.size() == classes.size(), "Queries should have same length with classes");
|
Assert.isTrue(queries.size() == classes.size(), "Queries should have same length with classes");
|
||||||
MultiSearchRequest request = new MultiSearchRequest();
|
MultiSearchRequest request = new MultiSearchRequest();
|
||||||
Iterator<Class<?>> it = classes.iterator();
|
Iterator<Class<?>> it = classes.iterator();
|
||||||
for (SearchQuery query : queries) {
|
for (NativeSearchQuery query : queries) {
|
||||||
request.add(prepareSearch(prepareSearch(query, it.next()), query));
|
request.add(prepareSearch(prepareSearch(query, it.next()), query));
|
||||||
}
|
}
|
||||||
return doMultiSearch(queries, classes, request);
|
return doMultiSearch(queries, classes, request);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> T query(SearchQuery query, ResultsExtractor<T> resultsExtractor) {
|
public <T> T query(NativeSearchQuery query, ResultsExtractor<T> resultsExtractor) {
|
||||||
SearchResponse response = doSearch(prepareSearch(query, (ElasticsearchPersistentEntity) null), query);
|
SearchResponse response = doSearch(prepareSearch(query, (ElasticsearchPersistentEntity) null), query);
|
||||||
return resultsExtractor.extract(response);
|
return resultsExtractor.extract(response);
|
||||||
}
|
}
|
||||||
@ -354,12 +355,12 @@ public class ElasticsearchTemplate extends AbstractElasticsearchTemplate
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> List<T> queryForList(SearchQuery query, Class<T> clazz) {
|
public <T> List<T> queryForList(NativeSearchQuery query, Class<T> clazz) {
|
||||||
return queryForPage(query, clazz).getContent();
|
return queryForPage(query, clazz).getContent();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> List<String> queryForIds(SearchQuery query) {
|
public <T> List<String> queryForIds(NativeSearchQuery query) {
|
||||||
SearchRequestBuilder request = prepareSearch(query, (ElasticsearchPersistentEntity) null)
|
SearchRequestBuilder request = prepareSearch(query, (ElasticsearchPersistentEntity) null)
|
||||||
.setQuery(query.getQuery());
|
.setQuery(query.getQuery());
|
||||||
if (query.getFilter() != null) {
|
if (query.getFilter() != null) {
|
||||||
@ -410,7 +411,7 @@ public class ElasticsearchTemplate extends AbstractElasticsearchTemplate
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> CloseableIterator<T> stream(SearchQuery query, Class<T> clazz) {
|
public <T> CloseableIterator<T> stream(NativeSearchQuery query, Class<T> clazz) {
|
||||||
long scrollTimeInMillis = TimeValue.timeValueMinutes(1).millis();
|
long scrollTimeInMillis = TimeValue.timeValueMinutes(1).millis();
|
||||||
return doStream(scrollTimeInMillis, startScroll(scrollTimeInMillis, query, clazz), clazz);
|
return doStream(scrollTimeInMillis, startScroll(scrollTimeInMillis, query, clazz), clazz);
|
||||||
}
|
}
|
||||||
@ -435,7 +436,7 @@ public class ElasticsearchTemplate extends AbstractElasticsearchTemplate
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> long count(SearchQuery searchQuery, Class<T> clazz) {
|
public <T> long count(NativeSearchQuery searchQuery, Class<T> clazz) {
|
||||||
QueryBuilder elasticsearchQuery = searchQuery.getQuery();
|
QueryBuilder elasticsearchQuery = searchQuery.getQuery();
|
||||||
QueryBuilder elasticsearchFilter = searchQuery.getFilter();
|
QueryBuilder elasticsearchFilter = searchQuery.getFilter();
|
||||||
|
|
||||||
@ -453,7 +454,7 @@ public class ElasticsearchTemplate extends AbstractElasticsearchTemplate
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> long count(SearchQuery query) {
|
public <T> long count(NativeSearchQuery query) {
|
||||||
return count(query, null);
|
return count(query, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -497,7 +498,7 @@ public class ElasticsearchTemplate extends AbstractElasticsearchTemplate
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> List<T> multiGet(SearchQuery searchQuery, Class<T> clazz) {
|
public <T> List<T> multiGet(NativeSearchQuery searchQuery, Class<T> clazz) {
|
||||||
return elasticsearchConverter.mapDocuments(DocumentAdapters.from(getMultiResponse(searchQuery, clazz)), clazz);
|
return elasticsearchConverter.mapDocuments(DocumentAdapters.from(getMultiResponse(searchQuery, clazz)), clazz);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -763,8 +764,8 @@ public class ElasticsearchTemplate extends AbstractElasticsearchTemplate
|
|||||||
requestBuilder.setIndicesOptions(query.getIndicesOptions());
|
requestBuilder.setIndicesOptions(query.getIndicesOptions());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (query instanceof SearchQuery) {
|
if (query instanceof NativeSearchQuery) {
|
||||||
SearchQuery searchQuery = (SearchQuery) query;
|
NativeSearchQuery searchQuery = (NativeSearchQuery) query;
|
||||||
|
|
||||||
if (searchQuery.getHighlightFields() != null || searchQuery.getHighlightBuilder() != null) {
|
if (searchQuery.getHighlightFields() != null || searchQuery.getHighlightBuilder() != null) {
|
||||||
HighlightBuilder highlightBuilder = searchQuery.getHighlightBuilder();
|
HighlightBuilder highlightBuilder = searchQuery.getHighlightBuilder();
|
||||||
@ -805,7 +806,7 @@ public class ElasticsearchTemplate extends AbstractElasticsearchTemplate
|
|||||||
return getSearchResponse(requestBuilder);
|
return getSearchResponse(requestBuilder);
|
||||||
}
|
}
|
||||||
|
|
||||||
private SearchResponse doScroll(SearchRequestBuilder requestBuilder, SearchQuery searchQuery) {
|
private SearchResponse doScroll(SearchRequestBuilder requestBuilder, NativeSearchQuery searchQuery) {
|
||||||
Assert.notNull(searchQuery.getIndices(), "No index defined for Query");
|
Assert.notNull(searchQuery.getIndices(), "No index defined for Query");
|
||||||
Assert.notNull(searchQuery.getTypes(), "No type define for Query");
|
Assert.notNull(searchQuery.getTypes(), "No type define for Query");
|
||||||
Assert.notNull(searchQuery.getPageable(), "Query.pageable is required for scan & scroll");
|
Assert.notNull(searchQuery.getPageable(), "Query.pageable is required for scan & scroll");
|
||||||
@ -824,7 +825,7 @@ public class ElasticsearchTemplate extends AbstractElasticsearchTemplate
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <T> ScrolledPage<T> startScroll(long scrollTimeInMillis, SearchQuery searchQuery, Class<T> clazz) {
|
public <T> ScrolledPage<T> startScroll(long scrollTimeInMillis, NativeSearchQuery searchQuery, Class<T> clazz) {
|
||||||
SearchResponse response = doScroll(prepareScroll(searchQuery, scrollTimeInMillis, clazz), searchQuery);
|
SearchResponse response = doScroll(prepareScroll(searchQuery, scrollTimeInMillis, clazz), searchQuery);
|
||||||
return elasticsearchConverter.mapResults(SearchDocumentResponse.from(response), clazz, null);
|
return elasticsearchConverter.mapResults(SearchDocumentResponse.from(response), clazz, null);
|
||||||
}
|
}
|
||||||
@ -890,12 +891,12 @@ public class ElasticsearchTemplate extends AbstractElasticsearchTemplate
|
|||||||
return queryForPage(new NativeSearchQueryBuilder().withQuery(moreLikeThisQueryBuilder).build(), clazz);
|
return queryForPage(new NativeSearchQueryBuilder().withQuery(moreLikeThisQueryBuilder).build(), clazz);
|
||||||
}
|
}
|
||||||
|
|
||||||
private SearchResponse doSearch(SearchRequestBuilder searchRequest, SearchQuery searchQuery) {
|
private SearchResponse doSearch(SearchRequestBuilder searchRequest, NativeSearchQuery searchQuery) {
|
||||||
SearchRequestBuilder requestBuilder = prepareSearch(searchRequest, searchQuery);
|
SearchRequestBuilder requestBuilder = prepareSearch(searchRequest, searchQuery);
|
||||||
return getSearchResponse(requestBuilder);
|
return getSearchResponse(requestBuilder);
|
||||||
}
|
}
|
||||||
|
|
||||||
private SearchRequestBuilder prepareSearch(SearchRequestBuilder searchRequest, SearchQuery searchQuery) {
|
private SearchRequestBuilder prepareSearch(SearchRequestBuilder searchRequest, NativeSearchQuery searchQuery) {
|
||||||
if (searchQuery.getFilter() != null) {
|
if (searchQuery.getFilter() != null) {
|
||||||
searchRequest.setPostFilter(searchQuery.getFilter());
|
searchRequest.setPostFilter(searchQuery.getFilter());
|
||||||
}
|
}
|
||||||
|
@ -66,7 +66,6 @@ import org.springframework.data.elasticsearch.core.mapping.SimpleElasticsearchMa
|
|||||||
import org.springframework.data.elasticsearch.core.query.CriteriaQuery;
|
import org.springframework.data.elasticsearch.core.query.CriteriaQuery;
|
||||||
import org.springframework.data.elasticsearch.core.query.NativeSearchQuery;
|
import org.springframework.data.elasticsearch.core.query.NativeSearchQuery;
|
||||||
import org.springframework.data.elasticsearch.core.query.Query;
|
import org.springframework.data.elasticsearch.core.query.Query;
|
||||||
import org.springframework.data.elasticsearch.core.query.SearchQuery;
|
|
||||||
import org.springframework.data.elasticsearch.core.query.StringQuery;
|
import org.springframework.data.elasticsearch.core.query.StringQuery;
|
||||||
import org.springframework.data.mapping.context.MappingContext;
|
import org.springframework.data.mapping.context.MappingContext;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
@ -273,8 +272,8 @@ public class ReactiveElasticsearchTemplate implements ReactiveElasticsearchOpera
|
|||||||
searchSourceBuilder.fetchSource(query.getSourceFilter().getIncludes(), query.getSourceFilter().getExcludes());
|
searchSourceBuilder.fetchSource(query.getSourceFilter().getIncludes(), query.getSourceFilter().getExcludes());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (query instanceof SearchQuery && ((SearchQuery) query).getCollapseBuilder() != null) {
|
if (query instanceof NativeSearchQuery && ((NativeSearchQuery) query).getCollapseBuilder() != null) {
|
||||||
searchSourceBuilder.collapse(((SearchQuery) query).getCollapseBuilder());
|
searchSourceBuilder.collapse(((NativeSearchQuery) query).getCollapseBuilder());
|
||||||
}
|
}
|
||||||
|
|
||||||
sort(query, entity).forEach(searchSourceBuilder::sort);
|
sort(query, entity).forEach(searchSourceBuilder::sort);
|
||||||
@ -312,8 +311,8 @@ public class ReactiveElasticsearchTemplate implements ReactiveElasticsearchOpera
|
|||||||
searchSourceBuilder.fetchSource(query.getSourceFilter().getIncludes(), query.getSourceFilter().getExcludes());
|
searchSourceBuilder.fetchSource(query.getSourceFilter().getIncludes(), query.getSourceFilter().getExcludes());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (query instanceof SearchQuery && ((SearchQuery) query).getCollapseBuilder() != null) {
|
if (query instanceof NativeSearchQuery && ((NativeSearchQuery) query).getCollapseBuilder() != null) {
|
||||||
searchSourceBuilder.collapse(((SearchQuery) query).getCollapseBuilder());
|
searchSourceBuilder.collapse(((NativeSearchQuery) query).getCollapseBuilder());
|
||||||
}
|
}
|
||||||
|
|
||||||
sort(query, entity).forEach(searchSourceBuilder::sort);
|
sort(query, entity).forEach(searchSourceBuilder::sort);
|
||||||
@ -747,8 +746,8 @@ public class ReactiveElasticsearchTemplate implements ReactiveElasticsearchOpera
|
|||||||
@Nullable
|
@Nullable
|
||||||
private QueryBuilder mappedFilterQuery(Query query, ElasticsearchPersistentEntity<?> entity) {
|
private QueryBuilder mappedFilterQuery(Query query, ElasticsearchPersistentEntity<?> entity) {
|
||||||
|
|
||||||
if (query instanceof SearchQuery) {
|
if (query instanceof NativeSearchQuery) {
|
||||||
return ((SearchQuery) query).getFilter();
|
return ((NativeSearchQuery) query).getFilter();
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
|
@ -34,8 +34,9 @@ import org.springframework.data.elasticsearch.core.facet.FacetRequest;
|
|||||||
* @author Artur Konczak
|
* @author Artur Konczak
|
||||||
* @author Jean-Baptiste Nizet
|
* @author Jean-Baptiste Nizet
|
||||||
* @author Martin Choraine
|
* @author Martin Choraine
|
||||||
|
* @author Peter-Josef Meisch
|
||||||
*/
|
*/
|
||||||
public class NativeSearchQuery extends AbstractQuery implements SearchQuery {
|
public class NativeSearchQuery extends AbstractQuery {
|
||||||
|
|
||||||
private QueryBuilder query;
|
private QueryBuilder query;
|
||||||
private QueryBuilder filter;
|
private QueryBuilder filter;
|
||||||
@ -97,17 +98,14 @@ public class NativeSearchQuery extends AbstractQuery implements SearchQuery {
|
|||||||
return sorts;
|
return sorts;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public HighlightBuilder getHighlightBuilder() {
|
public HighlightBuilder getHighlightBuilder() {
|
||||||
return highlightBuilder;
|
return highlightBuilder;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public HighlightBuilder.Field[] getHighlightFields() {
|
public HighlightBuilder.Field[] getHighlightFields() {
|
||||||
return highlightFields;
|
return highlightFields;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<ScriptField> getScriptFields() {
|
public List<ScriptField> getScriptFields() {
|
||||||
return scriptFields;
|
return scriptFields;
|
||||||
}
|
}
|
||||||
@ -120,7 +118,6 @@ public class NativeSearchQuery extends AbstractQuery implements SearchQuery {
|
|||||||
scriptFields.addAll(Arrays.asList(scriptField));
|
scriptFields.addAll(Arrays.asList(scriptField));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public CollapseBuilder getCollapseBuilder() {
|
public CollapseBuilder getCollapseBuilder() {
|
||||||
return collapseBuilder;
|
return collapseBuilder;
|
||||||
}
|
}
|
||||||
@ -142,12 +139,10 @@ public class NativeSearchQuery extends AbstractQuery implements SearchQuery {
|
|||||||
this.facets = facets;
|
this.facets = facets;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<FacetRequest> getFacets() {
|
public List<FacetRequest> getFacets() {
|
||||||
return facets;
|
return facets;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<AbstractAggregationBuilder> getAggregations() {
|
public List<AbstractAggregationBuilder> getAggregations() {
|
||||||
return aggregations;
|
return aggregations;
|
||||||
}
|
}
|
||||||
@ -165,7 +160,6 @@ public class NativeSearchQuery extends AbstractQuery implements SearchQuery {
|
|||||||
this.aggregations = aggregations;
|
this.aggregations = aggregations;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<IndexBoost> getIndicesBoost() {
|
public List<IndexBoost> getIndicesBoost() {
|
||||||
return indicesBoost;
|
return indicesBoost;
|
||||||
}
|
}
|
||||||
|
@ -1,59 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2013-2019 the original author or authors.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* https://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
package org.springframework.data.elasticsearch.core.query;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.elasticsearch.index.query.QueryBuilder;
|
|
||||||
import org.elasticsearch.search.aggregations.AbstractAggregationBuilder;
|
|
||||||
import org.elasticsearch.search.collapse.CollapseBuilder;
|
|
||||||
import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder;
|
|
||||||
import org.elasticsearch.search.sort.SortBuilder;
|
|
||||||
import org.springframework.data.elasticsearch.core.facet.FacetRequest;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* NativeSearchQuery
|
|
||||||
*
|
|
||||||
* @author Rizwan Idrees
|
|
||||||
* @author Mohsin Husen
|
|
||||||
* @author Artur Konczak
|
|
||||||
* @author Jean-Baptiste Nizet
|
|
||||||
* @author Martin Choraine
|
|
||||||
*/
|
|
||||||
public interface SearchQuery extends Query {
|
|
||||||
|
|
||||||
QueryBuilder getQuery();
|
|
||||||
|
|
||||||
QueryBuilder getFilter();
|
|
||||||
|
|
||||||
List<SortBuilder> getElasticsearchSorts();
|
|
||||||
|
|
||||||
@Deprecated
|
|
||||||
List<FacetRequest> getFacets();
|
|
||||||
|
|
||||||
List<AbstractAggregationBuilder> getAggregations();
|
|
||||||
|
|
||||||
HighlightBuilder getHighlightBuilder();
|
|
||||||
|
|
||||||
HighlightBuilder.Field[] getHighlightFields();
|
|
||||||
|
|
||||||
List<IndexBoost> getIndicesBoost();
|
|
||||||
|
|
||||||
List<ScriptField> getScriptFields();
|
|
||||||
|
|
||||||
CollapseBuilder getCollapseBuilder();
|
|
||||||
|
|
||||||
}
|
|
@ -18,7 +18,7 @@ package org.springframework.data.elasticsearch.repository;
|
|||||||
import org.elasticsearch.index.query.QueryBuilder;
|
import org.elasticsearch.index.query.QueryBuilder;
|
||||||
import org.springframework.data.domain.Page;
|
import org.springframework.data.domain.Page;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
import org.springframework.data.elasticsearch.core.query.SearchQuery;
|
import org.springframework.data.elasticsearch.core.query.NativeSearchQuery;
|
||||||
import org.springframework.data.repository.NoRepositoryBean;
|
import org.springframework.data.repository.NoRepositoryBean;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -28,6 +28,7 @@ import org.springframework.data.repository.NoRepositoryBean;
|
|||||||
* @author Mohsin Husen
|
* @author Mohsin Husen
|
||||||
* @author Sascha Woo
|
* @author Sascha Woo
|
||||||
* @author Murali Chevuri
|
* @author Murali Chevuri
|
||||||
|
* @author Peter-Josef Meisch
|
||||||
*/
|
*/
|
||||||
@NoRepositoryBean
|
@NoRepositoryBean
|
||||||
public interface ElasticsearchRepository<T, ID> extends ElasticsearchCrudRepository<T, ID> {
|
public interface ElasticsearchRepository<T, ID> extends ElasticsearchCrudRepository<T, ID> {
|
||||||
@ -45,7 +46,7 @@ public interface ElasticsearchRepository<T, ID> extends ElasticsearchCrudReposit
|
|||||||
|
|
||||||
Page<T> search(QueryBuilder query, Pageable pageable);
|
Page<T> search(QueryBuilder query, Pageable pageable);
|
||||||
|
|
||||||
Page<T> search(SearchQuery searchQuery);
|
Page<T> search(NativeSearchQuery searchQuery);
|
||||||
|
|
||||||
Page<T> searchSimilar(T entity, String[] fields, Pageable pageable);
|
Page<T> searchSimilar(T entity, String[] fields, Pageable pageable);
|
||||||
|
|
||||||
|
@ -40,8 +40,8 @@ import org.springframework.data.elasticsearch.core.query.DeleteQuery;
|
|||||||
import org.springframework.data.elasticsearch.core.query.GetQuery;
|
import org.springframework.data.elasticsearch.core.query.GetQuery;
|
||||||
import org.springframework.data.elasticsearch.core.query.IndexQuery;
|
import org.springframework.data.elasticsearch.core.query.IndexQuery;
|
||||||
import org.springframework.data.elasticsearch.core.query.MoreLikeThisQuery;
|
import org.springframework.data.elasticsearch.core.query.MoreLikeThisQuery;
|
||||||
|
import org.springframework.data.elasticsearch.core.query.NativeSearchQuery;
|
||||||
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
|
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
|
||||||
import org.springframework.data.elasticsearch.core.query.SearchQuery;
|
|
||||||
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
|
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
|
||||||
import org.springframework.data.util.Streamable;
|
import org.springframework.data.util.Streamable;
|
||||||
import org.springframework.util.Assert;
|
import org.springframework.util.Assert;
|
||||||
@ -134,7 +134,7 @@ public abstract class AbstractElasticsearchRepository<T, ID> implements Elastics
|
|||||||
@Override
|
@Override
|
||||||
public Page<T> findAll(Pageable pageable) {
|
public Page<T> findAll(Pageable pageable) {
|
||||||
|
|
||||||
SearchQuery query = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).withPageable(pageable).build();
|
NativeSearchQuery query = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).withPageable(pageable).build();
|
||||||
|
|
||||||
return elasticsearchOperations.queryForPage(query, getEntityClass());
|
return elasticsearchOperations.queryForPage(query, getEntityClass());
|
||||||
}
|
}
|
||||||
@ -147,7 +147,7 @@ public abstract class AbstractElasticsearchRepository<T, ID> implements Elastics
|
|||||||
return new PageImpl<>(Collections.<T> emptyList());
|
return new PageImpl<>(Collections.<T> emptyList());
|
||||||
}
|
}
|
||||||
|
|
||||||
SearchQuery query = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
NativeSearchQuery query = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
||||||
.withPageable(PageRequest.of(0, itemCount, sort)).build();
|
.withPageable(PageRequest.of(0, itemCount, sort)).build();
|
||||||
|
|
||||||
return elasticsearchOperations.queryForPage(query, getEntityClass());
|
return elasticsearchOperations.queryForPage(query, getEntityClass());
|
||||||
@ -158,7 +158,7 @@ public abstract class AbstractElasticsearchRepository<T, ID> implements Elastics
|
|||||||
|
|
||||||
Assert.notNull(ids, "ids can't be null.");
|
Assert.notNull(ids, "ids can't be null.");
|
||||||
|
|
||||||
SearchQuery query = new NativeSearchQueryBuilder().withIds(stringIdsRepresentation(ids)).build();
|
NativeSearchQuery query = new NativeSearchQueryBuilder().withIds(stringIdsRepresentation(ids)).build();
|
||||||
|
|
||||||
return elasticsearchOperations.multiGet(query, getEntityClass());
|
return elasticsearchOperations.multiGet(query, getEntityClass());
|
||||||
}
|
}
|
||||||
@ -166,7 +166,7 @@ public abstract class AbstractElasticsearchRepository<T, ID> implements Elastics
|
|||||||
@Override
|
@Override
|
||||||
public long count() {
|
public long count() {
|
||||||
|
|
||||||
SearchQuery query = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
|
NativeSearchQuery query = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
|
||||||
|
|
||||||
return elasticsearchOperations.count(query, getEntityClass());
|
return elasticsearchOperations.count(query, getEntityClass());
|
||||||
}
|
}
|
||||||
@ -230,7 +230,7 @@ public abstract class AbstractElasticsearchRepository<T, ID> implements Elastics
|
|||||||
@Override
|
@Override
|
||||||
public Iterable<T> search(QueryBuilder query) {
|
public Iterable<T> search(QueryBuilder query) {
|
||||||
|
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(query).build();
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(query).build();
|
||||||
int count = (int) elasticsearchOperations.count(searchQuery, getEntityClass());
|
int count = (int) elasticsearchOperations.count(searchQuery, getEntityClass());
|
||||||
if (count == 0) {
|
if (count == 0) {
|
||||||
return new PageImpl<>(Collections.<T> emptyList());
|
return new PageImpl<>(Collections.<T> emptyList());
|
||||||
@ -244,13 +244,13 @@ public abstract class AbstractElasticsearchRepository<T, ID> implements Elastics
|
|||||||
@Override
|
@Override
|
||||||
public Page<T> search(QueryBuilder query, Pageable pageable) {
|
public Page<T> search(QueryBuilder query, Pageable pageable) {
|
||||||
|
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(query).withPageable(pageable).build();
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(query).withPageable(pageable).build();
|
||||||
|
|
||||||
return elasticsearchOperations.queryForPage(searchQuery, getEntityClass());
|
return elasticsearchOperations.queryForPage(searchQuery, getEntityClass());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Page<T> search(SearchQuery query) {
|
public Page<T> search(NativeSearchQuery query) {
|
||||||
|
|
||||||
return elasticsearchOperations.queryForPage(query, getEntityClass());
|
return elasticsearchOperations.queryForPage(query, getEntityClass());
|
||||||
}
|
}
|
||||||
|
@ -47,8 +47,8 @@ import org.springframework.data.elasticsearch.annotations.MultiField;
|
|||||||
import org.springframework.data.elasticsearch.core.ElasticsearchTemplate;
|
import org.springframework.data.elasticsearch.core.ElasticsearchTemplate;
|
||||||
import org.springframework.data.elasticsearch.core.query.GetQuery;
|
import org.springframework.data.elasticsearch.core.query.GetQuery;
|
||||||
import org.springframework.data.elasticsearch.core.query.IndexQuery;
|
import org.springframework.data.elasticsearch.core.query.IndexQuery;
|
||||||
|
import org.springframework.data.elasticsearch.core.query.NativeSearchQuery;
|
||||||
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
|
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
|
||||||
import org.springframework.data.elasticsearch.core.query.SearchQuery;
|
|
||||||
import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
|
import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
|
||||||
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
|
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
|
||||||
import org.springframework.data.elasticsearch.utils.IndexInitializer;
|
import org.springframework.data.elasticsearch.utils.IndexInitializer;
|
||||||
@ -128,7 +128,7 @@ public class NestedObjectTests {
|
|||||||
QueryBuilder builder = nestedQuery("car",
|
QueryBuilder builder = nestedQuery("car",
|
||||||
boolQuery().must(termQuery("car.name", "saturn")).must(termQuery("car.model", "imprezza")), ScoreMode.None);
|
boolQuery().must(termQuery("car.name", "saturn")).must(termQuery("car.model", "imprezza")), ScoreMode.None);
|
||||||
|
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(builder).build();
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(builder).build();
|
||||||
List<Person> persons = elasticsearchTemplate.queryForList(searchQuery, Person.class);
|
List<Person> persons = elasticsearchTemplate.queryForList(searchQuery, Person.class);
|
||||||
|
|
||||||
assertThat(persons).hasSize(1);
|
assertThat(persons).hasSize(1);
|
||||||
@ -186,7 +186,7 @@ public class NestedObjectTests {
|
|||||||
builder.must(nestedQuery("girlFriends", termQuery("girlFriends.type", "temp"), ScoreMode.None)).must(
|
builder.must(nestedQuery("girlFriends", termQuery("girlFriends.type", "temp"), ScoreMode.None)).must(
|
||||||
nestedQuery("girlFriends.cars", termQuery("girlFriends.cars.name", "Ford".toLowerCase()), ScoreMode.None));
|
nestedQuery("girlFriends.cars", termQuery("girlFriends.cars.name", "Ford".toLowerCase()), ScoreMode.None));
|
||||||
|
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(builder).build();
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(builder).build();
|
||||||
|
|
||||||
Page<PersonMultipleLevelNested> personIndexed = elasticsearchTemplate.queryForPage(searchQuery,
|
Page<PersonMultipleLevelNested> personIndexed = elasticsearchTemplate.queryForPage(searchQuery,
|
||||||
PersonMultipleLevelNested.class);
|
PersonMultipleLevelNested.class);
|
||||||
@ -323,7 +323,7 @@ public class NestedObjectTests {
|
|||||||
// when
|
// when
|
||||||
QueryBuilder builder = nestedQuery("books", boolQuery().must(termQuery("books.name", "java")), ScoreMode.None);
|
QueryBuilder builder = nestedQuery("books", boolQuery().must(termQuery("books.name", "java")), ScoreMode.None);
|
||||||
|
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(builder).build();
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(builder).build();
|
||||||
List<Person> persons = elasticsearchTemplate.queryForList(searchQuery, Person.class);
|
List<Person> persons = elasticsearchTemplate.queryForList(searchQuery, Person.class);
|
||||||
|
|
||||||
// then
|
// then
|
||||||
@ -369,7 +369,7 @@ public class NestedObjectTests {
|
|||||||
elasticsearchTemplate.refresh(Book.class);
|
elasticsearchTemplate.refresh(Book.class);
|
||||||
|
|
||||||
// then
|
// then
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder()
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder()
|
||||||
.withQuery(nestedQuery("buckets", termQuery("buckets.1", "test3"), ScoreMode.None)).build();
|
.withQuery(nestedQuery("buckets", termQuery("buckets.1", "test3"), ScoreMode.None)).build();
|
||||||
Page<Book> books = elasticsearchTemplate.queryForPage(searchQuery, Book.class);
|
Page<Book> books = elasticsearchTemplate.queryForPage(searchQuery, Book.class);
|
||||||
|
|
||||||
|
@ -172,7 +172,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
IndexQuery indexQuery = getIndexQuery(sampleEntity);
|
IndexQuery indexQuery = getIndexQuery(sampleEntity);
|
||||||
elasticsearchTemplate.index(indexQuery);
|
elasticsearchTemplate.index(indexQuery);
|
||||||
elasticsearchTemplate.refresh(SampleEntity.class);
|
elasticsearchTemplate.refresh(SampleEntity.class);
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
|
||||||
|
|
||||||
// when
|
// when
|
||||||
|
|
||||||
@ -221,7 +221,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
elasticsearchTemplate.refresh(SampleEntity.class);
|
elasticsearchTemplate.refresh(SampleEntity.class);
|
||||||
|
|
||||||
// when
|
// when
|
||||||
SearchQuery query = new NativeSearchQueryBuilder().withIds(Arrays.asList(documentId, documentId2)).build();
|
NativeSearchQuery query = new NativeSearchQueryBuilder().withIds(Arrays.asList(documentId, documentId2)).build();
|
||||||
List<SampleEntity> sampleEntities = elasticsearchTemplate.multiGet(query, SampleEntity.class);
|
List<SampleEntity> sampleEntities = elasticsearchTemplate.multiGet(query, SampleEntity.class);
|
||||||
|
|
||||||
// then
|
// then
|
||||||
@ -250,7 +250,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
elasticsearchTemplate.refresh(SampleEntity.class);
|
elasticsearchTemplate.refresh(SampleEntity.class);
|
||||||
|
|
||||||
// when
|
// when
|
||||||
SearchQuery query = new NativeSearchQueryBuilder().withIds(Arrays.asList(documentId, documentId2))
|
NativeSearchQuery query = new NativeSearchQueryBuilder().withIds(Arrays.asList(documentId, documentId2))
|
||||||
.withFields("message", "type").build();
|
.withFields("message", "type").build();
|
||||||
List<SampleEntity> sampleEntities = elasticsearchTemplate.multiGet(query, SampleEntity.class);
|
List<SampleEntity> sampleEntities = elasticsearchTemplate.multiGet(query, SampleEntity.class);
|
||||||
|
|
||||||
@ -271,7 +271,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
elasticsearchTemplate.index(indexQuery);
|
elasticsearchTemplate.index(indexQuery);
|
||||||
elasticsearchTemplate.refresh(SampleEntity.class);
|
elasticsearchTemplate.refresh(SampleEntity.class);
|
||||||
|
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
|
||||||
|
|
||||||
// when
|
// when
|
||||||
Page<SampleEntity> sampleEntities = elasticsearchTemplate.queryForPage(searchQuery, SampleEntity.class);
|
Page<SampleEntity> sampleEntities = elasticsearchTemplate.queryForPage(searchQuery, SampleEntity.class);
|
||||||
@ -294,7 +294,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
elasticsearchTemplate.index(indexQuery);
|
elasticsearchTemplate.index(indexQuery);
|
||||||
elasticsearchTemplate.refresh(SampleEntity.class);
|
elasticsearchTemplate.refresh(SampleEntity.class);
|
||||||
|
|
||||||
SearchQuery searchQueryWithValidPreference = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
NativeSearchQuery searchQueryWithValidPreference = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
||||||
.withPreference("_local").build();
|
.withPreference("_local").build();
|
||||||
|
|
||||||
// when
|
// when
|
||||||
@ -319,7 +319,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
elasticsearchTemplate.index(indexQuery);
|
elasticsearchTemplate.index(indexQuery);
|
||||||
elasticsearchTemplate.refresh(SampleEntity.class);
|
elasticsearchTemplate.refresh(SampleEntity.class);
|
||||||
|
|
||||||
SearchQuery searchQueryWithInvalidPreference = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
NativeSearchQuery searchQueryWithInvalidPreference = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
||||||
.withPreference("_only_nodes:oops").build();
|
.withPreference("_only_nodes:oops").build();
|
||||||
|
|
||||||
// when
|
// when
|
||||||
@ -343,7 +343,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
elasticsearchTemplate.refresh(INDEX_1_NAME);
|
elasticsearchTemplate.refresh(INDEX_1_NAME);
|
||||||
|
|
||||||
// when
|
// when
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
||||||
.withIndices(INDEX_1_NAME, INDEX_2_NAME).withIndicesOptions(IndicesOptions.lenientExpandOpen()).build();
|
.withIndices(INDEX_1_NAME, INDEX_2_NAME).withIndicesOptions(IndicesOptions.lenientExpandOpen()).build();
|
||||||
Page<SampleEntity> entities = elasticsearchTemplate.queryForPage(searchQuery, SampleEntity.class);
|
Page<SampleEntity> entities = elasticsearchTemplate.queryForPage(searchQuery, SampleEntity.class);
|
||||||
|
|
||||||
@ -375,7 +375,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
elasticsearchTemplate.refresh(SampleEntity.class);
|
elasticsearchTemplate.refresh(SampleEntity.class);
|
||||||
|
|
||||||
// then
|
// then
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
|
||||||
Page<SampleEntity> sampleEntities = elasticsearchTemplate.queryForPage(searchQuery, SampleEntity.class);
|
Page<SampleEntity> sampleEntities = elasticsearchTemplate.queryForPage(searchQuery, SampleEntity.class);
|
||||||
assertThat(sampleEntities.getTotalElements()).isEqualTo(2);
|
assertThat(sampleEntities.getTotalElements()).isEqualTo(2);
|
||||||
}
|
}
|
||||||
@ -431,7 +431,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
elasticsearchTemplate.refresh(SampleEntity.class);
|
elasticsearchTemplate.refresh(SampleEntity.class);
|
||||||
|
|
||||||
// then
|
// then
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(termQuery("id", documentId)).build();
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(termQuery("id", documentId)).build();
|
||||||
Page<SampleEntity> sampleEntities = elasticsearchTemplate.queryForPage(searchQuery, SampleEntity.class);
|
Page<SampleEntity> sampleEntities = elasticsearchTemplate.queryForPage(searchQuery, SampleEntity.class);
|
||||||
assertThat(sampleEntities.getTotalElements()).isEqualTo(0);
|
assertThat(sampleEntities.getTotalElements()).isEqualTo(0);
|
||||||
}
|
}
|
||||||
@ -453,7 +453,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
elasticsearchTemplate.refresh(SampleEntity.class);
|
elasticsearchTemplate.refresh(SampleEntity.class);
|
||||||
|
|
||||||
// then
|
// then
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(termQuery("id", documentId)).build();
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(termQuery("id", documentId)).build();
|
||||||
Page<SampleEntity> sampleEntities = elasticsearchTemplate.queryForPage(searchQuery, SampleEntity.class);
|
Page<SampleEntity> sampleEntities = elasticsearchTemplate.queryForPage(searchQuery, SampleEntity.class);
|
||||||
assertThat(sampleEntities.getTotalElements()).isEqualTo(0);
|
assertThat(sampleEntities.getTotalElements()).isEqualTo(0);
|
||||||
}
|
}
|
||||||
@ -478,7 +478,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
elasticsearchTemplate.refresh(SampleEntity.class);
|
elasticsearchTemplate.refresh(SampleEntity.class);
|
||||||
|
|
||||||
// then
|
// then
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(termQuery("id", documentId)).build();
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(termQuery("id", documentId)).build();
|
||||||
Page<SampleEntity> sampleEntities = elasticsearchTemplate.queryForPage(searchQuery, SampleEntity.class);
|
Page<SampleEntity> sampleEntities = elasticsearchTemplate.queryForPage(searchQuery, SampleEntity.class);
|
||||||
assertThat(sampleEntities.getTotalElements()).isEqualTo(0);
|
assertThat(sampleEntities.getTotalElements()).isEqualTo(0);
|
||||||
}
|
}
|
||||||
@ -516,7 +516,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
elasticsearchTemplate.refresh(INDEX_2_NAME);
|
elasticsearchTemplate.refresh(INDEX_2_NAME);
|
||||||
|
|
||||||
// then
|
// then
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(termQuery("message", "foo"))
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(termQuery("message", "foo"))
|
||||||
.withIndices(INDEX_1_NAME, INDEX_2_NAME) //
|
.withIndices(INDEX_1_NAME, INDEX_2_NAME) //
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
@ -556,7 +556,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
elasticsearchTemplate.refresh(INDEX_2_NAME);
|
elasticsearchTemplate.refresh(INDEX_2_NAME);
|
||||||
|
|
||||||
// then
|
// then
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(termQuery("message", "positive"))
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(termQuery("message", "positive"))
|
||||||
.withIndices(INDEX_1_NAME, INDEX_2_NAME) //
|
.withIndices(INDEX_1_NAME, INDEX_2_NAME) //
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
@ -575,7 +575,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
elasticsearchTemplate.index(indexQuery);
|
elasticsearchTemplate.index(indexQuery);
|
||||||
elasticsearchTemplate.refresh(SampleEntity.class);
|
elasticsearchTemplate.refresh(SampleEntity.class);
|
||||||
|
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
||||||
.withFilter(boolQuery().filter(termQuery("id", documentId))).build();
|
.withFilter(boolQuery().filter(termQuery("id", documentId))).build();
|
||||||
|
|
||||||
// when
|
// when
|
||||||
@ -610,7 +610,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
elasticsearchTemplate.bulkIndex(indexQueries);
|
elasticsearchTemplate.bulkIndex(indexQueries);
|
||||||
elasticsearchTemplate.refresh(SampleEntity.class);
|
elasticsearchTemplate.refresh(SampleEntity.class);
|
||||||
|
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
||||||
.withSort(new FieldSortBuilder("rate").order(SortOrder.ASC)).build();
|
.withSort(new FieldSortBuilder("rate").order(SortOrder.ASC)).build();
|
||||||
|
|
||||||
// when
|
// when
|
||||||
@ -646,7 +646,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
elasticsearchTemplate.bulkIndex(indexQueries);
|
elasticsearchTemplate.bulkIndex(indexQueries);
|
||||||
elasticsearchTemplate.refresh(SampleEntity.class);
|
elasticsearchTemplate.refresh(SampleEntity.class);
|
||||||
|
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
||||||
.withSort(new FieldSortBuilder("rate").order(SortOrder.ASC))
|
.withSort(new FieldSortBuilder("rate").order(SortOrder.ASC))
|
||||||
.withSort(new FieldSortBuilder("message").order(SortOrder.ASC)).build();
|
.withSort(new FieldSortBuilder("message").order(SortOrder.ASC)).build();
|
||||||
|
|
||||||
@ -685,7 +685,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
elasticsearchTemplate.bulkIndex(indexQueries);
|
elasticsearchTemplate.bulkIndex(indexQueries);
|
||||||
elasticsearchTemplate.refresh(SampleEntity.class);
|
elasticsearchTemplate.refresh(SampleEntity.class);
|
||||||
|
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
||||||
.withPageable(PageRequest.of(0, 10, Sort.by(Sort.Order.asc("message").nullsFirst()))).build();
|
.withPageable(PageRequest.of(0, 10, Sort.by(Sort.Order.asc("message").nullsFirst()))).build();
|
||||||
|
|
||||||
// when
|
// when
|
||||||
@ -723,7 +723,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
elasticsearchTemplate.bulkIndex(indexQueries);
|
elasticsearchTemplate.bulkIndex(indexQueries);
|
||||||
elasticsearchTemplate.refresh(SampleEntity.class);
|
elasticsearchTemplate.refresh(SampleEntity.class);
|
||||||
|
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
||||||
.withPageable(PageRequest.of(0, 10, Sort.by(Sort.Order.asc("message").nullsLast()))).build();
|
.withPageable(PageRequest.of(0, 10, Sort.by(Sort.Order.asc("message").nullsLast()))).build();
|
||||||
|
|
||||||
// when
|
// when
|
||||||
@ -747,7 +747,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
elasticsearchTemplate.bulkIndex(getIndexQueries(entities));
|
elasticsearchTemplate.bulkIndex(getIndexQueries(entities));
|
||||||
elasticsearchTemplate.refresh(SampleEntity.class);
|
elasticsearchTemplate.refresh(SampleEntity.class);
|
||||||
|
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder() //
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder() //
|
||||||
.withQuery(matchQuery("message", "green")) //
|
.withQuery(matchQuery("message", "green")) //
|
||||||
.withPageable(PageRequest.of(0, 10, Sort.by(Sort.Order.asc("_score")))) //
|
.withPageable(PageRequest.of(0, 10, Sort.by(Sort.Order.asc("_score")))) //
|
||||||
.build();
|
.build();
|
||||||
@ -805,7 +805,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
params.put("factor", 2);
|
params.put("factor", 2);
|
||||||
|
|
||||||
// when
|
// when
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).withScriptField(
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).withScriptField(
|
||||||
new ScriptField("scriptedRate", new Script(ScriptType.INLINE, "expression", "doc['rate'] * factor", params)))
|
new ScriptField("scriptedRate", new Script(ScriptType.INLINE, "expression", "doc['rate'] * factor", params)))
|
||||||
.build();
|
.build();
|
||||||
Page<SampleEntity> sampleEntities = elasticsearchTemplate.queryForPage(searchQuery, SampleEntity.class);
|
Page<SampleEntity> sampleEntities = elasticsearchTemplate.queryForPage(searchQuery, SampleEntity.class);
|
||||||
@ -961,7 +961,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
|
|
||||||
elasticsearchTemplate.index(indexQuery);
|
elasticsearchTemplate.index(indexQuery);
|
||||||
elasticsearchTemplate.refresh(SampleEntity.class);
|
elasticsearchTemplate.refresh(SampleEntity.class);
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
||||||
.withIndices(INDEX_NAME_SAMPLE_ENTITY).withTypes(TYPE_NAME).withFields("message").build();
|
.withIndices(INDEX_NAME_SAMPLE_ENTITY).withTypes(TYPE_NAME).withFields("message").build();
|
||||||
|
|
||||||
// when
|
// when
|
||||||
@ -993,7 +993,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
FetchSourceFilterBuilder sourceFilter = new FetchSourceFilterBuilder();
|
FetchSourceFilterBuilder sourceFilter = new FetchSourceFilterBuilder();
|
||||||
sourceFilter.withIncludes("message");
|
sourceFilter.withIncludes("message");
|
||||||
|
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
||||||
.withIndices(INDEX_NAME_SAMPLE_ENTITY).withTypes(TYPE_NAME).withSourceFilter(sourceFilter.build()).build();
|
.withIndices(INDEX_NAME_SAMPLE_ENTITY).withTypes(TYPE_NAME).withSourceFilter(sourceFilter.build()).build();
|
||||||
|
|
||||||
// when
|
// when
|
||||||
@ -1080,7 +1080,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
|
|
||||||
// then
|
// then
|
||||||
|
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
||||||
.withIndices(INDEX_NAME_SAMPLE_ENTITY).withTypes(TYPE_NAME).withPageable(PageRequest.of(0, 10)).build();
|
.withIndices(INDEX_NAME_SAMPLE_ENTITY).withTypes(TYPE_NAME).withPageable(PageRequest.of(0, 10)).build();
|
||||||
|
|
||||||
ScrolledPage<SampleEntity> scroll = elasticsearchTemplate.startScroll(1000, searchQuery, SampleEntity.class);
|
ScrolledPage<SampleEntity> scroll = elasticsearchTemplate.startScroll(1000, searchQuery, SampleEntity.class);
|
||||||
@ -1133,7 +1133,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
elasticsearchTemplate.refresh(SampleEntity.class);
|
elasticsearchTemplate.refresh(SampleEntity.class);
|
||||||
|
|
||||||
// then
|
// then
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
||||||
.withIndices(INDEX_NAME_SAMPLE_ENTITY).withTypes(TYPE_NAME).withFields("message").withQuery(matchAllQuery())
|
.withIndices(INDEX_NAME_SAMPLE_ENTITY).withTypes(TYPE_NAME).withFields("message").withQuery(matchAllQuery())
|
||||||
.withPageable(PageRequest.of(0, 10)).build();
|
.withPageable(PageRequest.of(0, 10)).build();
|
||||||
|
|
||||||
@ -1188,7 +1188,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
elasticsearchTemplate.refresh(SampleEntity.class);
|
elasticsearchTemplate.refresh(SampleEntity.class);
|
||||||
|
|
||||||
// then
|
// then
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
||||||
.withIndices(INDEX_NAME_SAMPLE_ENTITY).withTypes(TYPE_NAME).withPageable(PageRequest.of(0, 10)).build();
|
.withIndices(INDEX_NAME_SAMPLE_ENTITY).withTypes(TYPE_NAME).withPageable(PageRequest.of(0, 10)).build();
|
||||||
|
|
||||||
ScrolledPage<SampleEntity> scroll = elasticsearchTemplate.startScroll(1000, searchQuery, SampleEntity.class);
|
ScrolledPage<SampleEntity> scroll = elasticsearchTemplate.startScroll(1000, searchQuery, SampleEntity.class);
|
||||||
@ -1240,7 +1240,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
elasticsearchTemplate.refresh(SampleEntity.class);
|
elasticsearchTemplate.refresh(SampleEntity.class);
|
||||||
|
|
||||||
// then
|
// then
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
||||||
.withPageable(PageRequest.of(0, 10)).build();
|
.withPageable(PageRequest.of(0, 10)).build();
|
||||||
|
|
||||||
ScrolledPage<SampleEntity> scroll = elasticsearchTemplate.startScroll(1000, searchQuery, SampleEntity.class);
|
ScrolledPage<SampleEntity> scroll = elasticsearchTemplate.startScroll(1000, searchQuery, SampleEntity.class);
|
||||||
@ -1504,7 +1504,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
elasticsearchTemplate.refresh(INDEX_1_NAME);
|
elasticsearchTemplate.refresh(INDEX_1_NAME);
|
||||||
|
|
||||||
// when
|
// when
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
||||||
.withIndices(INDEX_1_NAME, INDEX_2_NAME).withIndicesOptions(IndicesOptions.lenientExpandOpen()).build();
|
.withIndices(INDEX_1_NAME, INDEX_2_NAME).withIndicesOptions(IndicesOptions.lenientExpandOpen()).build();
|
||||||
|
|
||||||
List<SampleEntity> entities = new ArrayList<>();
|
List<SampleEntity> entities = new ArrayList<>();
|
||||||
@ -1539,7 +1539,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
elasticsearchTemplate.refresh(SampleEntity.class);
|
elasticsearchTemplate.refresh(SampleEntity.class);
|
||||||
|
|
||||||
// when
|
// when
|
||||||
List<SearchQuery> queries = new ArrayList<>();
|
List<NativeSearchQuery> queries = new ArrayList<>();
|
||||||
|
|
||||||
queries.add(new NativeSearchQueryBuilder().withQuery(termQuery("message", "ab")).build());
|
queries.add(new NativeSearchQueryBuilder().withQuery(termQuery("message", "ab")).build());
|
||||||
queries.add(new NativeSearchQueryBuilder().withQuery(termQuery("message", "bc")).build());
|
queries.add(new NativeSearchQueryBuilder().withQuery(termQuery("message", "bc")).build());
|
||||||
@ -1572,7 +1572,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
elasticsearchTemplate.refresh(clazz);
|
elasticsearchTemplate.refresh(clazz);
|
||||||
|
|
||||||
// when
|
// when
|
||||||
List<SearchQuery> queries = new ArrayList<>();
|
List<NativeSearchQuery> queries = new ArrayList<>();
|
||||||
|
|
||||||
queries.add(new NativeSearchQueryBuilder().withQuery(termQuery("message", "ab")).build());
|
queries.add(new NativeSearchQueryBuilder().withQuery(termQuery("message", "ab")).build());
|
||||||
queries.add(new NativeSearchQueryBuilder().withQuery(termQuery("description", "bc")).build());
|
queries.add(new NativeSearchQueryBuilder().withQuery(termQuery("description", "bc")).build());
|
||||||
@ -1609,7 +1609,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
elasticsearchTemplate.refresh(INDEX_NAME_SAMPLE_ENTITY);
|
elasticsearchTemplate.refresh(INDEX_NAME_SAMPLE_ENTITY);
|
||||||
|
|
||||||
// then
|
// then
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(termQuery("id", documentId)).build();
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(termQuery("id", documentId)).build();
|
||||||
Page<SampleEntity> sampleEntities = elasticsearchTemplate.queryForPage(searchQuery, SampleEntity.class);
|
Page<SampleEntity> sampleEntities = elasticsearchTemplate.queryForPage(searchQuery, SampleEntity.class);
|
||||||
assertThat(sampleEntities.getTotalElements()).isEqualTo(0);
|
assertThat(sampleEntities.getTotalElements()).isEqualTo(0);
|
||||||
}
|
}
|
||||||
@ -1628,7 +1628,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
// when
|
// when
|
||||||
elasticsearchTemplate.index(indexQuery);
|
elasticsearchTemplate.index(indexQuery);
|
||||||
elasticsearchTemplate.refresh(SampleEntity.class);
|
elasticsearchTemplate.refresh(SampleEntity.class);
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(termQuery("id", indexQuery.getId()))
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(termQuery("id", indexQuery.getId()))
|
||||||
.withIndices(INDEX_NAME_SAMPLE_ENTITY).withTypes(TYPE_NAME).build();
|
.withIndices(INDEX_NAME_SAMPLE_ENTITY).withTypes(TYPE_NAME).build();
|
||||||
|
|
||||||
// then
|
// then
|
||||||
@ -1658,7 +1658,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
// when
|
// when
|
||||||
elasticsearchTemplate.bulkIndex(entities);
|
elasticsearchTemplate.bulkIndex(entities);
|
||||||
elasticsearchTemplate.refresh(SampleEntity.class);
|
elasticsearchTemplate.refresh(SampleEntity.class);
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(termQuery("message", "message"))
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(termQuery("message", "message"))
|
||||||
.withIndices(INDEX_NAME_SAMPLE_ENTITY).withTypes(TYPE_NAME).withPageable(PageRequest.of(0, 100)).build();
|
.withIndices(INDEX_NAME_SAMPLE_ENTITY).withTypes(TYPE_NAME).withPageable(PageRequest.of(0, 100)).build();
|
||||||
// then
|
// then
|
||||||
List<String> ids = elasticsearchTemplate.queryForIds(searchQuery);
|
List<String> ids = elasticsearchTemplate.queryForIds(searchQuery);
|
||||||
@ -1678,7 +1678,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
elasticsearchTemplate.refresh(SampleEntity.class);
|
elasticsearchTemplate.refresh(SampleEntity.class);
|
||||||
|
|
||||||
// when
|
// when
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder()
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder()
|
||||||
.withQuery(boolQuery().must(wildcardQuery("message", "*a*")).should(wildcardQuery("message", "*b*")))
|
.withQuery(boolQuery().must(wildcardQuery("message", "*a*")).should(wildcardQuery("message", "*b*")))
|
||||||
.withIndices(INDEX_NAME_SAMPLE_ENTITY).withTypes(TYPE_NAME).withMinScore(2.0F).build();
|
.withIndices(INDEX_NAME_SAMPLE_ENTITY).withTypes(TYPE_NAME).withMinScore(2.0F).build();
|
||||||
|
|
||||||
@ -1703,7 +1703,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
elasticsearchTemplate.refresh(SampleEntity.class);
|
elasticsearchTemplate.refresh(SampleEntity.class);
|
||||||
|
|
||||||
// when
|
// when
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(termQuery("message", "xz"))
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(termQuery("message", "xz"))
|
||||||
.withSort(SortBuilders.fieldSort("message")).withTrackScores(true).build();
|
.withSort(SortBuilders.fieldSort("message")).withTrackScores(true).build();
|
||||||
|
|
||||||
Page<SampleEntity> page = elasticsearchTemplate.queryForPage(searchQuery, SampleEntity.class);
|
Page<SampleEntity> page = elasticsearchTemplate.queryForPage(searchQuery, SampleEntity.class);
|
||||||
@ -1766,7 +1766,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
elasticsearchTemplate.refresh(SampleEntity.class);
|
elasticsearchTemplate.refresh(SampleEntity.class);
|
||||||
|
|
||||||
// then
|
// then
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
|
||||||
Page<SampleEntity> sampleEntities = elasticsearchTemplate.queryForPage(searchQuery, SampleEntity.class);
|
Page<SampleEntity> sampleEntities = elasticsearchTemplate.queryForPage(searchQuery, SampleEntity.class);
|
||||||
assertThat(sampleEntities.getTotalElements()).isEqualTo(2);
|
assertThat(sampleEntities.getTotalElements()).isEqualTo(2);
|
||||||
|
|
||||||
@ -1814,8 +1814,8 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
elasticsearchTemplate.refresh(INDEX_NAME_SAMPLE_ENTITY);
|
elasticsearchTemplate.refresh(INDEX_NAME_SAMPLE_ENTITY);
|
||||||
|
|
||||||
// then
|
// then
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withIndices(INDEX_NAME_SAMPLE_ENTITY).withTypes(TYPE_NAME)
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withIndices(INDEX_NAME_SAMPLE_ENTITY)
|
||||||
.withQuery(matchAllQuery()).build();
|
.withTypes(TYPE_NAME).withQuery(matchAllQuery()).build();
|
||||||
Page<Map> sampleEntities = elasticsearchTemplate.queryForPage(searchQuery, Map.class);
|
Page<Map> sampleEntities = elasticsearchTemplate.queryForPage(searchQuery, Map.class);
|
||||||
|
|
||||||
assertThat(sampleEntities.getTotalElements()).isEqualTo(2);
|
assertThat(sampleEntities.getTotalElements()).isEqualTo(2);
|
||||||
@ -1839,8 +1839,8 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
elasticsearchTemplate.index(indexQueryBuilder.build());
|
elasticsearchTemplate.index(indexQueryBuilder.build());
|
||||||
elasticsearchTemplate.refresh(INDEX_NAME_SAMPLE_ENTITY);
|
elasticsearchTemplate.refresh(INDEX_NAME_SAMPLE_ENTITY);
|
||||||
|
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withIndices(INDEX_NAME_SAMPLE_ENTITY).withTypes(TYPE_NAME)
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withIndices(INDEX_NAME_SAMPLE_ENTITY)
|
||||||
.withQuery(matchAllQuery()).build();
|
.withTypes(TYPE_NAME).withQuery(matchAllQuery()).build();
|
||||||
// when
|
// when
|
||||||
Page<GTEVersionEntity> entities = elasticsearchTemplate.queryForPage(searchQuery, GTEVersionEntity.class);
|
Page<GTEVersionEntity> entities = elasticsearchTemplate.queryForPage(searchQuery, GTEVersionEntity.class);
|
||||||
// then
|
// then
|
||||||
@ -1871,8 +1871,8 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
elasticsearchTemplate.index(indexQuery);
|
elasticsearchTemplate.index(indexQuery);
|
||||||
elasticsearchTemplate.refresh(INDEX_NAME_SAMPLE_ENTITY);
|
elasticsearchTemplate.refresh(INDEX_NAME_SAMPLE_ENTITY);
|
||||||
|
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withIndices(INDEX_NAME_SAMPLE_ENTITY).withTypes(TYPE_NAME)
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withIndices(INDEX_NAME_SAMPLE_ENTITY)
|
||||||
.withQuery(matchAllQuery()).build();
|
.withTypes(TYPE_NAME).withQuery(matchAllQuery()).build();
|
||||||
|
|
||||||
// when
|
// when
|
||||||
Page<SampleEntity> sampleEntities = elasticsearchTemplate.queryForPage(searchQuery, SampleEntity.class);
|
Page<SampleEntity> sampleEntities = elasticsearchTemplate.queryForPage(searchQuery, SampleEntity.class);
|
||||||
@ -1914,7 +1914,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
IndexQuery indexQuery = getIndexQuery(sampleEntity);
|
IndexQuery indexQuery = getIndexQuery(sampleEntity);
|
||||||
elasticsearchTemplate.index(indexQuery);
|
elasticsearchTemplate.index(indexQuery);
|
||||||
elasticsearchTemplate.refresh(SampleEntity.class);
|
elasticsearchTemplate.refresh(SampleEntity.class);
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
||||||
.withIndices(INDEX_NAME_SAMPLE_ENTITY).build();
|
.withIndices(INDEX_NAME_SAMPLE_ENTITY).build();
|
||||||
|
|
||||||
// when
|
// when
|
||||||
@ -1957,7 +1957,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
IndexQuery indexQuery = getIndexQuery(sampleEntity);
|
IndexQuery indexQuery = getIndexQuery(sampleEntity);
|
||||||
elasticsearchTemplate.index(indexQuery);
|
elasticsearchTemplate.index(indexQuery);
|
||||||
elasticsearchTemplate.refresh(SampleEntity.class);
|
elasticsearchTemplate.refresh(SampleEntity.class);
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
||||||
.withIndices(INDEX_NAME_SAMPLE_ENTITY).withTypes(TYPE_NAME).build();
|
.withIndices(INDEX_NAME_SAMPLE_ENTITY).withTypes(TYPE_NAME).build();
|
||||||
|
|
||||||
// when
|
// when
|
||||||
@ -2023,7 +2023,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
elasticsearchTemplate.refresh(INDEX_1_NAME);
|
elasticsearchTemplate.refresh(INDEX_1_NAME);
|
||||||
elasticsearchTemplate.refresh(INDEX_2_NAME);
|
elasticsearchTemplate.refresh(INDEX_2_NAME);
|
||||||
|
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
||||||
.withIndices(INDEX_1_NAME, INDEX_2_NAME).build();
|
.withIndices(INDEX_1_NAME, INDEX_2_NAME).build();
|
||||||
|
|
||||||
// when
|
// when
|
||||||
@ -2125,7 +2125,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
elasticsearchTemplate.refresh(INDEX_1_NAME);
|
elasticsearchTemplate.refresh(INDEX_1_NAME);
|
||||||
elasticsearchTemplate.refresh(INDEX_2_NAME);
|
elasticsearchTemplate.refresh(INDEX_2_NAME);
|
||||||
|
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).withIndices(INDEX_1_NAME)
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).withIndices(INDEX_1_NAME)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
// when
|
// when
|
||||||
@ -2165,7 +2165,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
IndexQuery indexQuery = getIndexQuery(sampleEntity);
|
IndexQuery indexQuery = getIndexQuery(sampleEntity);
|
||||||
elasticsearchTemplate.index(indexQuery);
|
elasticsearchTemplate.index(indexQuery);
|
||||||
elasticsearchTemplate.refresh(SampleEntity.class);
|
elasticsearchTemplate.refresh(SampleEntity.class);
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
|
||||||
|
|
||||||
// when
|
// when
|
||||||
assertThatThrownBy(() -> {
|
assertThatThrownBy(() -> {
|
||||||
@ -2263,7 +2263,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
elasticsearchTemplate.refresh(INDEX_1_NAME);
|
elasticsearchTemplate.refresh(INDEX_1_NAME);
|
||||||
elasticsearchTemplate.refresh(INDEX_2_NAME);
|
elasticsearchTemplate.refresh(INDEX_2_NAME);
|
||||||
|
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
||||||
.withIndices(INDEX_1_NAME, INDEX_2_NAME).build();
|
.withIndices(INDEX_1_NAME, INDEX_2_NAME).build();
|
||||||
|
|
||||||
// when
|
// when
|
||||||
@ -2293,7 +2293,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
elasticsearchTemplate.refresh(INDEX_2_NAME);
|
elasticsearchTemplate.refresh(INDEX_2_NAME);
|
||||||
|
|
||||||
// when
|
// when
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).withTypes("hetro")
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).withTypes("hetro")
|
||||||
.withIndices(INDEX_1_NAME, INDEX_2_NAME).build();
|
.withIndices(INDEX_1_NAME, INDEX_2_NAME).build();
|
||||||
Page<ResultAggregator> page = elasticsearchTemplate.queryForPage(searchQuery, ResultAggregator.class);
|
Page<ResultAggregator> page = elasticsearchTemplate.queryForPage(searchQuery, ResultAggregator.class);
|
||||||
|
|
||||||
@ -2371,7 +2371,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
|
|
||||||
// then
|
// then
|
||||||
// document with id "remainingDocumentId" should still be indexed
|
// document with id "remainingDocumentId" should still be indexed
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
|
||||||
Page<SampleEntity> sampleEntities = elasticsearchTemplate.queryForPage(searchQuery, SampleEntity.class);
|
Page<SampleEntity> sampleEntities = elasticsearchTemplate.queryForPage(searchQuery, SampleEntity.class);
|
||||||
assertThat(sampleEntities.getTotalElements()).isEqualTo(1);
|
assertThat(sampleEntities.getTotalElements()).isEqualTo(1);
|
||||||
assertThat(sampleEntities.getContent().get(0).getId()).isEqualTo(remainingDocumentId);
|
assertThat(sampleEntities.getContent().get(0).getId()).isEqualTo(remainingDocumentId);
|
||||||
@ -2402,7 +2402,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
|
|
||||||
// then
|
// then
|
||||||
// document with id "remainingDocumentId" should still be indexed
|
// document with id "remainingDocumentId" should still be indexed
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
|
||||||
Page<SampleEntity> sampleEntities = elasticsearchTemplate.queryForPage(searchQuery, SampleEntity.class);
|
Page<SampleEntity> sampleEntities = elasticsearchTemplate.queryForPage(searchQuery, SampleEntity.class);
|
||||||
assertThat(sampleEntities.getTotalElements()).isEqualTo(1);
|
assertThat(sampleEntities.getTotalElements()).isEqualTo(1);
|
||||||
assertThat(sampleEntities.getContent().get(0).getId()).isEqualTo(remainingDocumentId);
|
assertThat(sampleEntities.getContent().get(0).getId()).isEqualTo(remainingDocumentId);
|
||||||
@ -2431,7 +2431,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
|
|
||||||
// then
|
// then
|
||||||
// document with id "remainingDocumentId" should still be indexed
|
// document with id "remainingDocumentId" should still be indexed
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
|
||||||
Page<SampleEntity> sampleEntities = elasticsearchTemplate.queryForPage(searchQuery, SampleEntity.class);
|
Page<SampleEntity> sampleEntities = elasticsearchTemplate.queryForPage(searchQuery, SampleEntity.class);
|
||||||
assertThat(sampleEntities.getTotalElements()).isEqualTo(1L);
|
assertThat(sampleEntities.getTotalElements()).isEqualTo(1L);
|
||||||
assertThat(sampleEntities.getContent().get(0).getId()).isEqualTo(remainingDocumentId);
|
assertThat(sampleEntities.getContent().get(0).getId()).isEqualTo(remainingDocumentId);
|
||||||
@ -2492,7 +2492,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
elasticsearchTemplate.refresh(SampleEntity.class);
|
elasticsearchTemplate.refresh(SampleEntity.class);
|
||||||
|
|
||||||
// when
|
// when
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchQuery("message", "message"))
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchQuery("message", "message"))
|
||||||
.withIndices(INDEX_NAME_SAMPLE_ENTITY).withTypes(TYPE_NAME).withPageable(PageRequest.of(0, 10)).build();
|
.withIndices(INDEX_NAME_SAMPLE_ENTITY).withTypes(TYPE_NAME).withPageable(PageRequest.of(0, 10)).build();
|
||||||
|
|
||||||
ScrolledPage<SampleEntity> scroll = elasticsearchTemplate.startScroll(1000, searchQuery, SampleEntity.class);
|
ScrolledPage<SampleEntity> scroll = elasticsearchTemplate.startScroll(1000, searchQuery, SampleEntity.class);
|
||||||
@ -2522,7 +2522,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
// then
|
// then
|
||||||
SourceFilter sourceFilter = new FetchSourceFilter(new String[] { "id" }, new String[] {});
|
SourceFilter sourceFilter = new FetchSourceFilter(new String[] { "id" }, new String[] {});
|
||||||
|
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
||||||
.withIndices(INDEX_NAME_SAMPLE_ENTITY).withTypes(TYPE_NAME).withPageable(PageRequest.of(0, 10))
|
.withIndices(INDEX_NAME_SAMPLE_ENTITY).withTypes(TYPE_NAME).withPageable(PageRequest.of(0, 10))
|
||||||
.withSourceFilter(sourceFilter).build();
|
.withSourceFilter(sourceFilter).build();
|
||||||
|
|
||||||
@ -2565,7 +2565,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
elasticsearchTemplate.bulkIndex(indexQueries);
|
elasticsearchTemplate.bulkIndex(indexQueries);
|
||||||
elasticsearchTemplate.refresh(SampleEntity.class);
|
elasticsearchTemplate.refresh(SampleEntity.class);
|
||||||
|
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
||||||
.withSort(new FieldSortBuilder("rate").order(SortOrder.ASC))
|
.withSort(new FieldSortBuilder("rate").order(SortOrder.ASC))
|
||||||
.withSort(new FieldSortBuilder("message").order(SortOrder.DESC)).withPageable(PageRequest.of(0, 10)).build();
|
.withSort(new FieldSortBuilder("message").order(SortOrder.DESC)).withPageable(PageRequest.of(0, 10)).build();
|
||||||
|
|
||||||
@ -2611,7 +2611,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
elasticsearchTemplate.bulkIndex(indexQueries);
|
elasticsearchTemplate.bulkIndex(indexQueries);
|
||||||
elasticsearchTemplate.refresh(SampleEntity.class);
|
elasticsearchTemplate.refresh(SampleEntity.class);
|
||||||
|
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
||||||
.withPageable(
|
.withPageable(
|
||||||
PageRequest.of(0, 10, Sort.by(Sort.Direction.ASC, "rate").and(Sort.by(Sort.Direction.DESC, "message"))))
|
PageRequest.of(0, 10, Sort.by(Sort.Direction.ASC, "rate").and(Sort.by(Sort.Direction.DESC, "message"))))
|
||||||
.build();
|
.build();
|
||||||
@ -2649,7 +2649,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
elasticsearchTemplate.bulkIndex(indexQueries);
|
elasticsearchTemplate.bulkIndex(indexQueries);
|
||||||
elasticsearchTemplate.refresh(SampleEntity.class);
|
elasticsearchTemplate.refresh(SampleEntity.class);
|
||||||
|
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
||||||
.withIndices(INDEX_NAME_SAMPLE_ENTITY).withTypes(TYPE_NAME).withCollapseField("rate").build();
|
.withIndices(INDEX_NAME_SAMPLE_ENTITY).withTypes(TYPE_NAME).withCollapseField("rate").build();
|
||||||
|
|
||||||
// when
|
// when
|
||||||
@ -2785,7 +2785,7 @@ public abstract class ElasticsearchTemplateTests {
|
|||||||
elasticsearchTemplate.index(indexQuery);
|
elasticsearchTemplate.index(indexQuery);
|
||||||
elasticsearchTemplate.refresh(INDEX_NAME_SAMPLE_ENTITY);
|
elasticsearchTemplate.refresh(INDEX_NAME_SAMPLE_ENTITY);
|
||||||
|
|
||||||
SearchQuery query = new NativeSearchQueryBuilder() //
|
NativeSearchQuery query = new NativeSearchQueryBuilder() //
|
||||||
.withQuery(matchAllQuery()) //
|
.withQuery(matchAllQuery()) //
|
||||||
.withIndices(alias) //
|
.withIndices(alias) //
|
||||||
.withTypes(TYPE_NAME) //
|
.withTypes(TYPE_NAME) //
|
||||||
|
@ -35,8 +35,8 @@ import org.springframework.data.annotation.Id;
|
|||||||
import org.springframework.data.elasticsearch.annotations.Document;
|
import org.springframework.data.elasticsearch.annotations.Document;
|
||||||
import org.springframework.data.elasticsearch.annotations.Field;
|
import org.springframework.data.elasticsearch.annotations.Field;
|
||||||
import org.springframework.data.elasticsearch.core.query.IndexQuery;
|
import org.springframework.data.elasticsearch.core.query.IndexQuery;
|
||||||
|
import org.springframework.data.elasticsearch.core.query.NativeSearchQuery;
|
||||||
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
|
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
|
||||||
import org.springframework.data.elasticsearch.core.query.SearchQuery;
|
|
||||||
import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
|
import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
|
||||||
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
|
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
|
||||||
import org.springframework.data.elasticsearch.utils.IndexInitializer;
|
import org.springframework.data.elasticsearch.utils.IndexInitializer;
|
||||||
@ -81,7 +81,7 @@ public class LogEntityTests {
|
|||||||
public void shouldIndexGivenLogEntityWithIPFieldType() {
|
public void shouldIndexGivenLogEntityWithIPFieldType() {
|
||||||
|
|
||||||
// when
|
// when
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(termQuery("ip", "10.10.10.1")).build();
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(termQuery("ip", "10.10.10.1")).build();
|
||||||
List<LogEntity> entities = template.queryForList(searchQuery, LogEntity.class);
|
List<LogEntity> entities = template.queryForList(searchQuery, LogEntity.class);
|
||||||
|
|
||||||
// then
|
// then
|
||||||
@ -92,7 +92,7 @@ public class LogEntityTests {
|
|||||||
public void shouldThrowExceptionWhenInvalidIPGivenForSearchQuery() {
|
public void shouldThrowExceptionWhenInvalidIPGivenForSearchQuery() {
|
||||||
|
|
||||||
// when
|
// when
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(termQuery("ip", "10.10.10")).build();
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(termQuery("ip", "10.10.10")).build();
|
||||||
|
|
||||||
assertThatThrownBy(() -> {
|
assertThatThrownBy(() -> {
|
||||||
List<LogEntity> entities = template.queryForList(searchQuery, LogEntity.class);
|
List<LogEntity> entities = template.queryForList(searchQuery, LogEntity.class);
|
||||||
@ -103,7 +103,7 @@ public class LogEntityTests {
|
|||||||
public void shouldReturnLogsForGivenIPRanges() {
|
public void shouldReturnLogsForGivenIPRanges() {
|
||||||
|
|
||||||
// when
|
// when
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder()
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder()
|
||||||
.withQuery(rangeQuery("ip").from("10.10.10.1").to("10.10.10.3")).build();
|
.withQuery(rangeQuery("ip").from("10.10.10.1").to("10.10.10.3")).build();
|
||||||
List<LogEntity> entities = template.queryForList(searchQuery, LogEntity.class);
|
List<LogEntity> entities = template.queryForList(searchQuery, LogEntity.class);
|
||||||
|
|
||||||
|
@ -57,8 +57,8 @@ import org.springframework.data.elasticsearch.core.query.Criteria;
|
|||||||
import org.springframework.data.elasticsearch.core.query.CriteriaQuery;
|
import org.springframework.data.elasticsearch.core.query.CriteriaQuery;
|
||||||
import org.springframework.data.elasticsearch.core.query.IndexQuery;
|
import org.springframework.data.elasticsearch.core.query.IndexQuery;
|
||||||
import org.springframework.data.elasticsearch.core.query.IndexQueryBuilder;
|
import org.springframework.data.elasticsearch.core.query.IndexQueryBuilder;
|
||||||
|
import org.springframework.data.elasticsearch.core.query.NativeSearchQuery;
|
||||||
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
|
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
|
||||||
import org.springframework.data.elasticsearch.core.query.SearchQuery;
|
|
||||||
import org.springframework.data.elasticsearch.core.query.StringQuery;
|
import org.springframework.data.elasticsearch.core.query.StringQuery;
|
||||||
import org.springframework.data.elasticsearch.junit.junit4.ElasticsearchVersion;
|
import org.springframework.data.elasticsearch.junit.junit4.ElasticsearchVersion;
|
||||||
import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
|
import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
|
||||||
@ -589,7 +589,7 @@ public class ReactiveElasticsearchTemplateTests {
|
|||||||
restTemplate.refresh(thisIndex);
|
restTemplate.refresh(thisIndex);
|
||||||
restTemplate.refresh(thatIndex);
|
restTemplate.refresh(thatIndex);
|
||||||
|
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder() //
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder() //
|
||||||
.withQuery(termQuery("message", "test")) //
|
.withQuery(termQuery("message", "test")) //
|
||||||
.withIndices(indexPrefix + "*") //
|
.withIndices(indexPrefix + "*") //
|
||||||
.build();
|
.build();
|
||||||
@ -619,7 +619,7 @@ public class ReactiveElasticsearchTemplateTests {
|
|||||||
restTemplate.refresh(thisIndex);
|
restTemplate.refresh(thisIndex);
|
||||||
restTemplate.refresh(thatIndex);
|
restTemplate.refresh(thatIndex);
|
||||||
|
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder() //
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder() //
|
||||||
.withQuery(termQuery("message", "negative")) //
|
.withQuery(termQuery("message", "negative")) //
|
||||||
.withIndices(indexPrefix + "*") //
|
.withIndices(indexPrefix + "*") //
|
||||||
.build();
|
.build();
|
||||||
@ -671,7 +671,7 @@ public class ReactiveElasticsearchTemplateTests {
|
|||||||
entity3.setRate(1);
|
entity3.setRate(1);
|
||||||
index(entity1, entity2, entity3);
|
index(entity1, entity2, entity3);
|
||||||
|
|
||||||
SearchQuery query = new NativeSearchQueryBuilder() //
|
NativeSearchQuery query = new NativeSearchQueryBuilder() //
|
||||||
.withIndices(DEFAULT_INDEX) //
|
.withIndices(DEFAULT_INDEX) //
|
||||||
.withQuery(matchAllQuery()) //
|
.withQuery(matchAllQuery()) //
|
||||||
.withCollapseField("rate") //
|
.withCollapseField("rate") //
|
||||||
|
@ -42,8 +42,8 @@ import org.springframework.data.elasticsearch.annotations.MultiField;
|
|||||||
import org.springframework.data.elasticsearch.core.ElasticsearchTemplate;
|
import org.springframework.data.elasticsearch.core.ElasticsearchTemplate;
|
||||||
import org.springframework.data.elasticsearch.core.ResultsExtractor;
|
import org.springframework.data.elasticsearch.core.ResultsExtractor;
|
||||||
import org.springframework.data.elasticsearch.core.query.IndexQuery;
|
import org.springframework.data.elasticsearch.core.query.IndexQuery;
|
||||||
|
import org.springframework.data.elasticsearch.core.query.NativeSearchQuery;
|
||||||
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
|
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
|
||||||
import org.springframework.data.elasticsearch.core.query.SearchQuery;
|
|
||||||
import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
|
import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
|
||||||
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
|
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
|
||||||
import org.springframework.data.elasticsearch.utils.IndexInitializer;
|
import org.springframework.data.elasticsearch.utils.IndexInitializer;
|
||||||
@ -106,7 +106,7 @@ public class ElasticsearchTemplateAggregationTests {
|
|||||||
public void shouldReturnAggregatedResponseForGivenSearchQuery() {
|
public void shouldReturnAggregatedResponseForGivenSearchQuery() {
|
||||||
|
|
||||||
// given
|
// given
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder() //
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder() //
|
||||||
.withQuery(matchAllQuery()) //
|
.withQuery(matchAllQuery()) //
|
||||||
.withSearchType(SearchType.DEFAULT) //
|
.withSearchType(SearchType.DEFAULT) //
|
||||||
.withIndices(INDEX_NAME).withTypes("article") //
|
.withIndices(INDEX_NAME).withTypes("article") //
|
||||||
|
@ -49,8 +49,8 @@ import org.springframework.data.elasticsearch.core.facet.result.StatisticalResul
|
|||||||
import org.springframework.data.elasticsearch.core.facet.result.Term;
|
import org.springframework.data.elasticsearch.core.facet.result.Term;
|
||||||
import org.springframework.data.elasticsearch.core.facet.result.TermResult;
|
import org.springframework.data.elasticsearch.core.facet.result.TermResult;
|
||||||
import org.springframework.data.elasticsearch.core.query.IndexQuery;
|
import org.springframework.data.elasticsearch.core.query.IndexQuery;
|
||||||
|
import org.springframework.data.elasticsearch.core.query.NativeSearchQuery;
|
||||||
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
|
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
|
||||||
import org.springframework.data.elasticsearch.core.query.SearchQuery;
|
|
||||||
import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
|
import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
|
||||||
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
|
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
|
||||||
import org.springframework.data.elasticsearch.utils.IndexInitializer;
|
import org.springframework.data.elasticsearch.utils.IndexInitializer;
|
||||||
@ -104,7 +104,7 @@ public class ElasticsearchTemplateFacetTests {
|
|||||||
|
|
||||||
// given
|
// given
|
||||||
String facetName = "fauthors";
|
String facetName = "fauthors";
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
||||||
.withFacet(new TermFacetRequestBuilder(facetName).fields("authors.untouched").build()).build();
|
.withFacet(new TermFacetRequestBuilder(facetName).fields("authors.untouched").build()).build();
|
||||||
|
|
||||||
// when
|
// when
|
||||||
@ -139,7 +139,7 @@ public class ElasticsearchTemplateFacetTests {
|
|||||||
|
|
||||||
// given
|
// given
|
||||||
String facetName = "fauthors";
|
String facetName = "fauthors";
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
||||||
.withFacet(new TermFacetRequestBuilder(facetName).applyQueryFilter().fields("authors.untouched").build())
|
.withFacet(new TermFacetRequestBuilder(facetName).applyQueryFilter().fields("authors.untouched").build())
|
||||||
.build();
|
.build();
|
||||||
// when
|
// when
|
||||||
@ -171,7 +171,7 @@ public class ElasticsearchTemplateFacetTests {
|
|||||||
|
|
||||||
// given
|
// given
|
||||||
String facetName = "fauthors";
|
String facetName = "fauthors";
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
||||||
.withFacet(new TermFacetRequestBuilder(facetName).applyQueryFilter().fields("authors.untouched")
|
.withFacet(new TermFacetRequestBuilder(facetName).applyQueryFilter().fields("authors.untouched")
|
||||||
.excludeTerms(RIZWAN_IDREES, ARTUR_KONCZAK).build())
|
.excludeTerms(RIZWAN_IDREES, ARTUR_KONCZAK).build())
|
||||||
.build();
|
.build();
|
||||||
@ -204,7 +204,7 @@ public class ElasticsearchTemplateFacetTests {
|
|||||||
|
|
||||||
// given
|
// given
|
||||||
String facetName = "fauthors";
|
String facetName = "fauthors";
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
||||||
.withFacet(new TermFacetRequestBuilder(facetName).fields("authors.untouched").ascTerm().build()).build();
|
.withFacet(new TermFacetRequestBuilder(facetName).fields("authors.untouched").ascTerm().build()).build();
|
||||||
|
|
||||||
// when
|
// when
|
||||||
@ -240,7 +240,7 @@ public class ElasticsearchTemplateFacetTests {
|
|||||||
|
|
||||||
// given
|
// given
|
||||||
String facetName = "fauthors";
|
String facetName = "fauthors";
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
||||||
.withFacet(new TermFacetRequestBuilder(facetName).fields("authors.untouched").ascCount().build()).build();
|
.withFacet(new TermFacetRequestBuilder(facetName).fields("authors.untouched").ascCount().build()).build();
|
||||||
|
|
||||||
// when
|
// when
|
||||||
@ -276,7 +276,7 @@ public class ElasticsearchTemplateFacetTests {
|
|||||||
|
|
||||||
// given
|
// given
|
||||||
String facetName = "fyears";
|
String facetName = "fyears";
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
||||||
.withFacet(new TermFacetRequestBuilder(facetName).fields("publishedYears").descCount().build()).build();
|
.withFacet(new TermFacetRequestBuilder(facetName).fields("publishedYears").descCount().build()).build();
|
||||||
|
|
||||||
// when
|
// when
|
||||||
@ -310,7 +310,7 @@ public class ElasticsearchTemplateFacetTests {
|
|||||||
|
|
||||||
// given
|
// given
|
||||||
String facetName = "fyears";
|
String facetName = "fyears";
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
||||||
.withFacet(
|
.withFacet(
|
||||||
new TermFacetRequestBuilder(facetName).applyQueryFilter().fields("publishedYears").descCount().build())
|
new TermFacetRequestBuilder(facetName).applyQueryFilter().fields("publishedYears").descCount().build())
|
||||||
.build();
|
.build();
|
||||||
@ -347,7 +347,7 @@ public class ElasticsearchTemplateFacetTests {
|
|||||||
// given
|
// given
|
||||||
String facetName = "fyears";
|
String facetName = "fyears";
|
||||||
assertThatThrownBy(() -> {
|
assertThatThrownBy(() -> {
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
||||||
.withFacet(
|
.withFacet(
|
||||||
new TermFacetRequestBuilder(facetName).fields("publishedYears", "authors.untouched").ascTerm().build())
|
new TermFacetRequestBuilder(facetName).fields("publishedYears", "authors.untouched").ascTerm().build())
|
||||||
.build();
|
.build();
|
||||||
@ -360,7 +360,7 @@ public class ElasticsearchTemplateFacetTests {
|
|||||||
// given
|
// given
|
||||||
String numberFacetName = "fAuthors";
|
String numberFacetName = "fAuthors";
|
||||||
String stringFacetName = "fyears";
|
String stringFacetName = "fyears";
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
||||||
.withFacet(new TermFacetRequestBuilder(numberFacetName).fields("publishedYears").ascTerm().build())
|
.withFacet(new TermFacetRequestBuilder(numberFacetName).fields("publishedYears").ascTerm().build())
|
||||||
.withFacet(new TermFacetRequestBuilder(stringFacetName).fields("authors.untouched").ascTerm().build()).build();
|
.withFacet(new TermFacetRequestBuilder(stringFacetName).fields("authors.untouched").ascTerm().build()).build();
|
||||||
|
|
||||||
@ -413,7 +413,7 @@ public class ElasticsearchTemplateFacetTests {
|
|||||||
// given
|
// given
|
||||||
String facetName = "fyears";
|
String facetName = "fyears";
|
||||||
assertThatThrownBy(() -> {
|
assertThatThrownBy(() -> {
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
||||||
.withFacet(new NativeFacetRequest()).build();
|
.withFacet(new NativeFacetRequest()).build();
|
||||||
}).isInstanceOf(UnsupportedOperationException.class);
|
}).isInstanceOf(UnsupportedOperationException.class);
|
||||||
}
|
}
|
||||||
@ -423,7 +423,7 @@ public class ElasticsearchTemplateFacetTests {
|
|||||||
|
|
||||||
// given
|
// given
|
||||||
String facetName = "regex_authors";
|
String facetName = "regex_authors";
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).withFacet(
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).withFacet(
|
||||||
new TermFacetRequestBuilder(facetName).applyQueryFilter().fields("authors.untouched").regex("Art.*").build())
|
new TermFacetRequestBuilder(facetName).applyQueryFilter().fields("authors.untouched").regex("Art.*").build())
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
@ -451,7 +451,7 @@ public class ElasticsearchTemplateFacetTests {
|
|||||||
|
|
||||||
// given
|
// given
|
||||||
String facetName = "all_authors";
|
String facetName = "all_authors";
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
||||||
.withFacet(
|
.withFacet(
|
||||||
new TermFacetRequestBuilder(facetName).applyQueryFilter().fields("authors.untouched").allTerms().build())
|
new TermFacetRequestBuilder(facetName).applyQueryFilter().fields("authors.untouched").allTerms().build())
|
||||||
.build();
|
.build();
|
||||||
@ -476,7 +476,7 @@ public class ElasticsearchTemplateFacetTests {
|
|||||||
|
|
||||||
// given
|
// given
|
||||||
String facetName = "rangeYears";
|
String facetName = "rangeYears";
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
||||||
.withFacet(new RangeFacetRequestBuilder(facetName).field(PUBLISHED_YEARS).to(YEAR_2000)
|
.withFacet(new RangeFacetRequestBuilder(facetName).field(PUBLISHED_YEARS).to(YEAR_2000)
|
||||||
.range(YEAR_2000, YEAR_2002).from(YEAR_2002).build())
|
.range(YEAR_2000, YEAR_2002).from(YEAR_2002).build())
|
||||||
.build();
|
.build();
|
||||||
@ -514,7 +514,7 @@ public class ElasticsearchTemplateFacetTests {
|
|||||||
|
|
||||||
// given
|
// given
|
||||||
String facetName = "rangeScoreOverYears";
|
String facetName = "rangeScoreOverYears";
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
||||||
.withFacet(new RangeFacetRequestBuilder(facetName).fields(PUBLISHED_YEARS, "score").to(YEAR_2000)
|
.withFacet(new RangeFacetRequestBuilder(facetName).fields(PUBLISHED_YEARS, "score").to(YEAR_2000)
|
||||||
.range(YEAR_2000, YEAR_2002).from(YEAR_2002).build())
|
.range(YEAR_2000, YEAR_2002).from(YEAR_2002).build())
|
||||||
.build();
|
.build();
|
||||||
@ -552,7 +552,7 @@ public class ElasticsearchTemplateFacetTests {
|
|||||||
|
|
||||||
// given
|
// given
|
||||||
String facetName = "statPublishedYear";
|
String facetName = "statPublishedYear";
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
||||||
.withFacet(new StatisticalFacetRequestBuilder(facetName).field(PUBLISHED_YEARS).build()).build();
|
.withFacet(new StatisticalFacetRequestBuilder(facetName).field(PUBLISHED_YEARS).build()).build();
|
||||||
|
|
||||||
// when
|
// when
|
||||||
@ -572,7 +572,7 @@ public class ElasticsearchTemplateFacetTests {
|
|||||||
|
|
||||||
// given
|
// given
|
||||||
String facetName = "numberPublicationPerYear";
|
String facetName = "numberPublicationPerYear";
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
|
||||||
.withFacet(new HistogramFacetRequestBuilder(facetName).field(PUBLISHED_YEARS).interval(1).build()).build();
|
.withFacet(new HistogramFacetRequestBuilder(facetName).field(PUBLISHED_YEARS).interval(1).build()).build();
|
||||||
|
|
||||||
// when
|
// when
|
||||||
@ -600,7 +600,7 @@ public class ElasticsearchTemplateFacetTests {
|
|||||||
@Test
|
@Test
|
||||||
public void shouldNotThrowExceptionForNoFacets() {
|
public void shouldNotThrowExceptionForNoFacets() {
|
||||||
|
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
|
||||||
AggregatedPage<ArticleEntity> result = elasticsearchTemplate.queryForPage(searchQuery, ArticleEntity.class);
|
AggregatedPage<ArticleEntity> result = elasticsearchTemplate.queryForPage(searchQuery, ArticleEntity.class);
|
||||||
|
|
||||||
assertThat(result.hasFacets()).isEqualTo(false);
|
assertThat(result.hasFacets()).isEqualTo(false);
|
||||||
|
@ -54,8 +54,8 @@ import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
|
|||||||
import org.springframework.data.elasticsearch.core.completion.Completion;
|
import org.springframework.data.elasticsearch.core.completion.Completion;
|
||||||
import org.springframework.data.elasticsearch.core.geo.GeoPoint;
|
import org.springframework.data.elasticsearch.core.geo.GeoPoint;
|
||||||
import org.springframework.data.elasticsearch.core.query.IndexQuery;
|
import org.springframework.data.elasticsearch.core.query.IndexQuery;
|
||||||
|
import org.springframework.data.elasticsearch.core.query.NativeSearchQuery;
|
||||||
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
|
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
|
||||||
import org.springframework.data.elasticsearch.core.query.SearchQuery;
|
|
||||||
import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
|
import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
|
||||||
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
|
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
|
||||||
import org.springframework.data.geo.Box;
|
import org.springframework.data.geo.Box;
|
||||||
@ -143,7 +143,7 @@ public class MappingBuilderTests extends MappingContextBaseTests {
|
|||||||
.index(buildIndex(StockPrice.builder().id(id).symbol(symbol).price(BigDecimal.valueOf(price)).build()));
|
.index(buildIndex(StockPrice.builder().id(id).symbol(symbol).price(BigDecimal.valueOf(price)).build()));
|
||||||
elasticsearchTemplate.refresh(StockPrice.class);
|
elasticsearchTemplate.refresh(StockPrice.class);
|
||||||
|
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
|
||||||
List<StockPrice> result = elasticsearchTemplate.queryForList(searchQuery, StockPrice.class);
|
List<StockPrice> result = elasticsearchTemplate.queryForList(searchQuery, StockPrice.class);
|
||||||
|
|
||||||
// Then
|
// Then
|
||||||
@ -190,7 +190,7 @@ public class MappingBuilderTests extends MappingContextBaseTests {
|
|||||||
.index(new SampleInheritedEntityBuilder(id).createdDate(createdDate).message(message).buildIndex());
|
.index(new SampleInheritedEntityBuilder(id).createdDate(createdDate).message(message).buildIndex());
|
||||||
elasticsearchTemplate.refresh(SampleInheritedEntity.class);
|
elasticsearchTemplate.refresh(SampleInheritedEntity.class);
|
||||||
|
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
|
||||||
List<SampleInheritedEntity> result = elasticsearchTemplate.queryForList(searchQuery, SampleInheritedEntity.class);
|
List<SampleInheritedEntity> result = elasticsearchTemplate.queryForList(searchQuery, SampleInheritedEntity.class);
|
||||||
|
|
||||||
// then
|
// then
|
||||||
|
@ -22,21 +22,24 @@ import java.util.Map;
|
|||||||
|
|
||||||
import org.apache.commons.lang.RandomStringUtils;
|
import org.apache.commons.lang.RandomStringUtils;
|
||||||
import org.elasticsearch.index.query.QueryBuilders;
|
import org.elasticsearch.index.query.QueryBuilders;
|
||||||
import org.junit.Before;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.junit.runner.RunWith;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.context.annotation.Import;
|
||||||
import org.springframework.data.annotation.Id;
|
import org.springframework.data.annotation.Id;
|
||||||
import org.springframework.data.elasticsearch.annotations.Document;
|
import org.springframework.data.elasticsearch.annotations.Document;
|
||||||
import org.springframework.data.elasticsearch.annotations.Mapping;
|
import org.springframework.data.elasticsearch.annotations.Mapping;
|
||||||
import org.springframework.data.elasticsearch.annotations.Setting;
|
import org.springframework.data.elasticsearch.annotations.Setting;
|
||||||
import org.springframework.data.elasticsearch.core.ElasticsearchTemplate;
|
import org.springframework.data.elasticsearch.core.ElasticsearchTemplate;
|
||||||
|
import org.springframework.data.elasticsearch.core.query.NativeSearchQuery;
|
||||||
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
|
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
|
||||||
import org.springframework.data.elasticsearch.core.query.SearchQuery;
|
import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
|
||||||
|
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
|
||||||
import org.springframework.data.elasticsearch.repository.ElasticsearchCrudRepository;
|
import org.springframework.data.elasticsearch.repository.ElasticsearchCrudRepository;
|
||||||
|
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
|
||||||
import org.springframework.data.elasticsearch.utils.IndexInitializer;
|
import org.springframework.data.elasticsearch.utils.IndexInitializer;
|
||||||
import org.springframework.test.context.ContextConfiguration;
|
import org.springframework.test.context.ContextConfiguration;
|
||||||
import org.springframework.test.context.junit4.SpringRunner;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* DynamicSettingAndMappingEntityRepositoryTests
|
* DynamicSettingAndMappingEntityRepositoryTests
|
||||||
@ -45,15 +48,22 @@ import org.springframework.test.context.junit4.SpringRunner;
|
|||||||
* @author Ilkang Na
|
* @author Ilkang Na
|
||||||
* @author Peter-Josef Meisch
|
* @author Peter-Josef Meisch
|
||||||
*/
|
*/
|
||||||
@RunWith(SpringRunner.class)
|
@SpringIntegrationTest
|
||||||
@ContextConfiguration("classpath:dynamic-settings-test.xml")
|
@ContextConfiguration(classes = { DynamicSettingAndMappingEntityRepositoryTests.Config.class })
|
||||||
public class DynamicSettingAndMappingEntityRepositoryTests {
|
public class DynamicSettingAndMappingEntityRepositoryTests {
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
@Import({ ElasticsearchTemplateConfiguration.class })
|
||||||
|
@EnableElasticsearchRepositories(
|
||||||
|
basePackages = { "org.springframework.data.elasticsearch.repositories.setting.dynamic" },
|
||||||
|
considerNestedRepositories = true)
|
||||||
|
static class Config {}
|
||||||
|
|
||||||
@Autowired private DynamicSettingAndMappingEntityRepository repository;
|
@Autowired private DynamicSettingAndMappingEntityRepository repository;
|
||||||
|
|
||||||
@Autowired private ElasticsearchTemplate elasticsearchTemplate;
|
@Autowired private ElasticsearchTemplate elasticsearchTemplate;
|
||||||
|
|
||||||
@Before
|
@BeforeEach
|
||||||
public void before() {
|
public void before() {
|
||||||
IndexInitializer.init(elasticsearchTemplate, DynamicSettingAndMappingEntity.class);
|
IndexInitializer.init(elasticsearchTemplate, DynamicSettingAndMappingEntity.class);
|
||||||
}
|
}
|
||||||
@ -94,7 +104,7 @@ public class DynamicSettingAndMappingEntityRepositoryTests {
|
|||||||
repository.save(dynamicSettingAndMappingEntity2);
|
repository.save(dynamicSettingAndMappingEntity2);
|
||||||
|
|
||||||
// when
|
// when
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder()
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder()
|
||||||
.withQuery(QueryBuilders.termQuery("email", dynamicSettingAndMappingEntity1.getEmail())).build();
|
.withQuery(QueryBuilders.termQuery("email", dynamicSettingAndMappingEntity1.getEmail())).build();
|
||||||
|
|
||||||
long count = elasticsearchTemplate.count(searchQuery, DynamicSettingAndMappingEntity.class);
|
long count = elasticsearchTemplate.count(searchQuery, DynamicSettingAndMappingEntity.class);
|
||||||
|
@ -19,19 +19,21 @@ import static org.assertj.core.api.Assertions.*;
|
|||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.junit.runner.RunWith;
|
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.context.annotation.Import;
|
||||||
import org.springframework.data.annotation.Id;
|
import org.springframework.data.annotation.Id;
|
||||||
import org.springframework.data.elasticsearch.annotations.Document;
|
import org.springframework.data.elasticsearch.annotations.Document;
|
||||||
import org.springframework.data.elasticsearch.annotations.Mapping;
|
import org.springframework.data.elasticsearch.annotations.Mapping;
|
||||||
import org.springframework.data.elasticsearch.core.ElasticsearchTemplate;
|
import org.springframework.data.elasticsearch.core.ElasticsearchTemplate;
|
||||||
|
import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
|
||||||
|
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
|
||||||
import org.springframework.data.elasticsearch.repository.ElasticsearchCrudRepository;
|
import org.springframework.data.elasticsearch.repository.ElasticsearchCrudRepository;
|
||||||
|
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
|
||||||
import org.springframework.data.elasticsearch.utils.IndexInitializer;
|
import org.springframework.data.elasticsearch.utils.IndexInitializer;
|
||||||
import org.springframework.test.context.ContextConfiguration;
|
import org.springframework.test.context.ContextConfiguration;
|
||||||
import org.springframework.test.context.junit4.SpringRunner;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FieldDynamicMappingEntityRepositoryTests
|
* FieldDynamicMappingEntityRepositoryTests
|
||||||
@ -39,15 +41,22 @@ import org.springframework.test.context.junit4.SpringRunner;
|
|||||||
* @author Ted Liang
|
* @author Ted Liang
|
||||||
* @author Peter-Josef Meisch
|
* @author Peter-Josef Meisch
|
||||||
*/
|
*/
|
||||||
@RunWith(SpringRunner.class)
|
@SpringIntegrationTest
|
||||||
@ContextConfiguration("classpath:field-dynamic-settings-test.xml")
|
@ContextConfiguration(classes = { FieldDynamicMappingEntityRepositoryTests.Config.class })
|
||||||
public class FieldDynamicMappingEntityRepositoryTests {
|
public class FieldDynamicMappingEntityRepositoryTests {
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
@Import({ ElasticsearchTemplateConfiguration.class })
|
||||||
|
@EnableElasticsearchRepositories(
|
||||||
|
basePackages = { "org.springframework.data.elasticsearch.repositories.setting.fielddynamic" },
|
||||||
|
considerNestedRepositories = true)
|
||||||
|
static class Config {}
|
||||||
|
|
||||||
@Autowired private FieldDynamicMappingEntityRepository repository;
|
@Autowired private FieldDynamicMappingEntityRepository repository;
|
||||||
|
|
||||||
@Autowired private ElasticsearchTemplate elasticsearchTemplate;
|
@Autowired private ElasticsearchTemplate elasticsearchTemplate;
|
||||||
|
|
||||||
@Before
|
@BeforeEach
|
||||||
public void before() {
|
public void before() {
|
||||||
IndexInitializer.init(elasticsearchTemplate, FieldDynamicMappingEntity.class);
|
IndexInitializer.init(elasticsearchTemplate, FieldDynamicMappingEntity.class);
|
||||||
}
|
}
|
||||||
|
@ -29,11 +29,11 @@ import java.util.List;
|
|||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.junit.runner.RunWith;
|
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.context.annotation.Import;
|
||||||
import org.springframework.data.annotation.Id;
|
import org.springframework.data.annotation.Id;
|
||||||
import org.springframework.data.annotation.Version;
|
import org.springframework.data.annotation.Version;
|
||||||
import org.springframework.data.domain.Page;
|
import org.springframework.data.domain.Page;
|
||||||
@ -46,12 +46,14 @@ import org.springframework.data.elasticsearch.annotations.FieldType;
|
|||||||
import org.springframework.data.elasticsearch.annotations.ScriptedField;
|
import org.springframework.data.elasticsearch.annotations.ScriptedField;
|
||||||
import org.springframework.data.elasticsearch.core.ElasticsearchTemplate;
|
import org.springframework.data.elasticsearch.core.ElasticsearchTemplate;
|
||||||
import org.springframework.data.elasticsearch.core.geo.GeoPoint;
|
import org.springframework.data.elasticsearch.core.geo.GeoPoint;
|
||||||
|
import org.springframework.data.elasticsearch.core.query.NativeSearchQuery;
|
||||||
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
|
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
|
||||||
import org.springframework.data.elasticsearch.core.query.SearchQuery;
|
import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchTemplateConfiguration;
|
||||||
|
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
|
||||||
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
|
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
|
||||||
|
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
|
||||||
import org.springframework.data.elasticsearch.utils.IndexInitializer;
|
import org.springframework.data.elasticsearch.utils.IndexInitializer;
|
||||||
import org.springframework.test.context.ContextConfiguration;
|
import org.springframework.test.context.ContextConfiguration;
|
||||||
import org.springframework.test.context.junit4.SpringRunner;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Gad Akuka
|
* @author Gad Akuka
|
||||||
@ -62,15 +64,21 @@ import org.springframework.test.context.junit4.SpringRunner;
|
|||||||
* @author Michael Wirth
|
* @author Michael Wirth
|
||||||
* @author Peter-Josef Meisch
|
* @author Peter-Josef Meisch
|
||||||
*/
|
*/
|
||||||
@RunWith(SpringRunner.class)
|
@SpringIntegrationTest
|
||||||
@ContextConfiguration("classpath:/uuidkeyed-repository-test.xml")
|
@ContextConfiguration(classes = { UUIDElasticsearchRepositoryTests.Config.class })
|
||||||
public class UUIDElasticsearchRepositoryTests {
|
public class UUIDElasticsearchRepositoryTests {
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
@Import({ ElasticsearchTemplateConfiguration.class })
|
||||||
|
@EnableElasticsearchRepositories(basePackages = { "org.springframework.data.elasticsearch.repositories.uuidkeyed" },
|
||||||
|
considerNestedRepositories = true)
|
||||||
|
static class Config {}
|
||||||
|
|
||||||
@Autowired private SampleUUIDKeyedElasticsearchRepository repository;
|
@Autowired private SampleUUIDKeyedElasticsearchRepository repository;
|
||||||
|
|
||||||
@Autowired private ElasticsearchTemplate elasticsearchTemplate;
|
@Autowired private ElasticsearchTemplate elasticsearchTemplate;
|
||||||
|
|
||||||
@Before
|
@BeforeEach
|
||||||
public void before() {
|
public void before() {
|
||||||
|
|
||||||
IndexInitializer.init(elasticsearchTemplate, SampleEntityUUIDKeyed.class);
|
IndexInitializer.init(elasticsearchTemplate, SampleEntityUUIDKeyed.class);
|
||||||
@ -198,7 +206,7 @@ public class UUIDElasticsearchRepositoryTests {
|
|||||||
sampleEntityUUIDKeyed.setVersion(System.currentTimeMillis());
|
sampleEntityUUIDKeyed.setVersion(System.currentTimeMillis());
|
||||||
repository.save(sampleEntityUUIDKeyed);
|
repository.save(sampleEntityUUIDKeyed);
|
||||||
|
|
||||||
SearchQuery query = new NativeSearchQueryBuilder().withQuery(termQuery("message", "test")).build();
|
NativeSearchQuery query = new NativeSearchQueryBuilder().withQuery(termQuery("message", "test")).build();
|
||||||
// when
|
// when
|
||||||
Page<SampleEntityUUIDKeyed> page = repository.search(query);
|
Page<SampleEntityUUIDKeyed> page = repository.search(query);
|
||||||
|
|
||||||
@ -319,7 +327,7 @@ public class UUIDElasticsearchRepositoryTests {
|
|||||||
repository.deleteAll();
|
repository.deleteAll();
|
||||||
|
|
||||||
// then
|
// then
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
|
||||||
Page<SampleEntityUUIDKeyed> sampleEntities = repository.search(searchQuery);
|
Page<SampleEntityUUIDKeyed> sampleEntities = repository.search(searchQuery);
|
||||||
assertThat(sampleEntities.getTotalElements()).isEqualTo(0L);
|
assertThat(sampleEntities.getTotalElements()).isEqualTo(0L);
|
||||||
}
|
}
|
||||||
@ -339,7 +347,8 @@ public class UUIDElasticsearchRepositoryTests {
|
|||||||
long result = repository.deleteSampleEntityUUIDKeyedById(documentId);
|
long result = repository.deleteSampleEntityUUIDKeyedById(documentId);
|
||||||
|
|
||||||
// then
|
// then
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(termQuery("id", documentId.toString())).build();
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(termQuery("id", documentId.toString()))
|
||||||
|
.build();
|
||||||
Page<SampleEntityUUIDKeyed> sampleEntities = repository.search(searchQuery);
|
Page<SampleEntityUUIDKeyed> sampleEntities = repository.search(searchQuery);
|
||||||
assertThat(sampleEntities.getTotalElements()).isGreaterThanOrEqualTo(0);
|
assertThat(sampleEntities.getTotalElements()).isGreaterThanOrEqualTo(0);
|
||||||
assertThat(result).isEqualTo(1L);
|
assertThat(result).isEqualTo(1L);
|
||||||
@ -377,7 +386,7 @@ public class UUIDElasticsearchRepositoryTests {
|
|||||||
|
|
||||||
// then
|
// then
|
||||||
assertThat(result).hasSize(2);
|
assertThat(result).hasSize(2);
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
|
||||||
Page<SampleEntityUUIDKeyed> sampleEntities = repository.search(searchQuery);
|
Page<SampleEntityUUIDKeyed> sampleEntities = repository.search(searchQuery);
|
||||||
assertThat(sampleEntities.getTotalElements()).isEqualTo(1);
|
assertThat(sampleEntities.getTotalElements()).isEqualTo(1);
|
||||||
}
|
}
|
||||||
@ -411,7 +420,7 @@ public class UUIDElasticsearchRepositoryTests {
|
|||||||
|
|
||||||
// then
|
// then
|
||||||
assertThat(result).hasSize(1);
|
assertThat(result).hasSize(1);
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
|
||||||
Page<SampleEntityUUIDKeyed> sampleEntities = repository.search(searchQuery);
|
Page<SampleEntityUUIDKeyed> sampleEntities = repository.search(searchQuery);
|
||||||
assertThat(sampleEntities.getTotalElements()).isEqualTo(2);
|
assertThat(sampleEntities.getTotalElements()).isEqualTo(2);
|
||||||
}
|
}
|
||||||
@ -444,7 +453,7 @@ public class UUIDElasticsearchRepositoryTests {
|
|||||||
repository.refresh();
|
repository.refresh();
|
||||||
|
|
||||||
// then
|
// then
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
|
||||||
Page<SampleEntityUUIDKeyed> sampleEntities = repository.search(searchQuery);
|
Page<SampleEntityUUIDKeyed> sampleEntities = repository.search(searchQuery);
|
||||||
assertThat(sampleEntities.getTotalElements()).isEqualTo(2);
|
assertThat(sampleEntities.getTotalElements()).isEqualTo(2);
|
||||||
}
|
}
|
||||||
@ -465,7 +474,8 @@ public class UUIDElasticsearchRepositoryTests {
|
|||||||
repository.refresh();
|
repository.refresh();
|
||||||
|
|
||||||
// then
|
// then
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(termQuery("id", documentId.toString())).build();
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(termQuery("id", documentId.toString()))
|
||||||
|
.build();
|
||||||
Page<SampleEntityUUIDKeyed> sampleEntities = repository.search(searchQuery);
|
Page<SampleEntityUUIDKeyed> sampleEntities = repository.search(searchQuery);
|
||||||
assertThat(sampleEntities.getTotalElements()).isEqualTo(0);
|
assertThat(sampleEntities.getTotalElements()).isEqualTo(0);
|
||||||
}
|
}
|
||||||
|
@ -33,29 +33,28 @@ import java.util.List;
|
|||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
import org.elasticsearch.action.ActionRequestValidationException;
|
import org.elasticsearch.action.ActionRequestValidationException;
|
||||||
import org.junit.Before;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.ClassRule;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.junit.Test;
|
|
||||||
import org.junit.runner.RunWith;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.context.annotation.Import;
|
||||||
import org.springframework.data.annotation.Id;
|
import org.springframework.data.annotation.Id;
|
||||||
import org.springframework.data.annotation.Version;
|
import org.springframework.data.annotation.Version;
|
||||||
import org.springframework.data.domain.Page;
|
import org.springframework.data.domain.Page;
|
||||||
import org.springframework.data.domain.PageRequest;
|
import org.springframework.data.domain.PageRequest;
|
||||||
import org.springframework.data.domain.Sort;
|
import org.springframework.data.domain.Sort;
|
||||||
import org.springframework.data.domain.Sort.Order;
|
import org.springframework.data.domain.Sort.Order;
|
||||||
import org.springframework.data.elasticsearch.RestElasticsearchTestConfiguration;
|
|
||||||
import org.springframework.data.elasticsearch.junit.junit4.TestNodeResource;
|
|
||||||
import org.springframework.data.elasticsearch.annotations.Document;
|
import org.springframework.data.elasticsearch.annotations.Document;
|
||||||
import org.springframework.data.elasticsearch.annotations.Field;
|
import org.springframework.data.elasticsearch.annotations.Field;
|
||||||
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
|
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
|
||||||
|
import org.springframework.data.elasticsearch.core.query.NativeSearchQuery;
|
||||||
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
|
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
|
||||||
import org.springframework.data.elasticsearch.core.query.SearchQuery;
|
import org.springframework.data.elasticsearch.junit.jupiter.ElasticsearchRestTemplateConfiguration;
|
||||||
|
import org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest;
|
||||||
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
|
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
|
||||||
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
|
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;
|
||||||
import org.springframework.data.elasticsearch.utils.IndexInitializer;
|
import org.springframework.data.elasticsearch.utils.IndexInitializer;
|
||||||
import org.springframework.test.context.ContextConfiguration;
|
import org.springframework.test.context.ContextConfiguration;
|
||||||
import org.springframework.test.context.junit4.SpringRunner;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Rizwan Idrees
|
* @author Rizwan Idrees
|
||||||
@ -66,18 +65,22 @@ import org.springframework.test.context.junit4.SpringRunner;
|
|||||||
* @author Peter-Josef Meisch
|
* @author Peter-Josef Meisch
|
||||||
* @author Murali Chevuri
|
* @author Murali Chevuri
|
||||||
*/
|
*/
|
||||||
@RunWith(SpringRunner.class)
|
@SpringIntegrationTest
|
||||||
@ContextConfiguration(classes = { SimpleElasticsearchRepositoryTests.class, RestElasticsearchTestConfiguration.class })
|
@ContextConfiguration(classes = { SimpleElasticsearchRepositoryTests.Config.class })
|
||||||
@EnableElasticsearchRepositories(considerNestedRepositories = true)
|
|
||||||
public class SimpleElasticsearchRepositoryTests {
|
public class SimpleElasticsearchRepositoryTests {
|
||||||
|
|
||||||
@ClassRule public static TestNodeResource testNodeResource = new TestNodeResource();
|
@Configuration
|
||||||
|
@Import({ ElasticsearchRestTemplateConfiguration.class })
|
||||||
|
@EnableElasticsearchRepositories(
|
||||||
|
basePackages = { "org.springframework.data.elasticsearch.repository.support.simple" },
|
||||||
|
considerNestedRepositories = true)
|
||||||
|
static class Config {}
|
||||||
|
|
||||||
@Autowired private SampleElasticsearchRepository repository;
|
@Autowired private SampleElasticsearchRepository repository;
|
||||||
|
|
||||||
@Autowired private ElasticsearchOperations elasticsearchOperations;
|
@Autowired private ElasticsearchOperations elasticsearchOperations;
|
||||||
|
|
||||||
@Before
|
@BeforeEach
|
||||||
public void before() {
|
public void before() {
|
||||||
IndexInitializer.init(elasticsearchOperations, SampleEntity.class);
|
IndexInitializer.init(elasticsearchOperations, SampleEntity.class);
|
||||||
}
|
}
|
||||||
@ -127,7 +130,7 @@ public class SimpleElasticsearchRepositoryTests {
|
|||||||
assertThat(entityFromElasticSearch).isPresent();
|
assertThat(entityFromElasticSearch).isPresent();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(expected = ActionRequestValidationException.class)
|
@Test
|
||||||
public void throwExceptionWhenTryingToInsertWithVersionButWithoutId() {
|
public void throwExceptionWhenTryingToInsertWithVersionButWithoutId() {
|
||||||
|
|
||||||
// given
|
// given
|
||||||
@ -136,10 +139,9 @@ public class SimpleElasticsearchRepositoryTests {
|
|||||||
sampleEntity.setVersion(System.currentTimeMillis());
|
sampleEntity.setVersion(System.currentTimeMillis());
|
||||||
|
|
||||||
// when
|
// when
|
||||||
|
assertThatThrownBy(() -> {
|
||||||
repository.save(sampleEntity);
|
repository.save(sampleEntity);
|
||||||
|
}).isInstanceOf(ActionRequestValidationException.class);
|
||||||
// then
|
|
||||||
assertThat(sampleEntity.getId()).isNotNull();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -219,7 +221,7 @@ public class SimpleElasticsearchRepositoryTests {
|
|||||||
sampleEntity.setVersion(System.currentTimeMillis());
|
sampleEntity.setVersion(System.currentTimeMillis());
|
||||||
repository.save(sampleEntity);
|
repository.save(sampleEntity);
|
||||||
|
|
||||||
SearchQuery query = new NativeSearchQueryBuilder().withQuery(termQuery("message", "test")).build();
|
NativeSearchQuery query = new NativeSearchQueryBuilder().withQuery(termQuery("message", "test")).build();
|
||||||
|
|
||||||
// when
|
// when
|
||||||
Page<SampleEntity> page = repository.search(query);
|
Page<SampleEntity> page = repository.search(query);
|
||||||
@ -342,7 +344,7 @@ public class SimpleElasticsearchRepositoryTests {
|
|||||||
repository.save(sampleEntity);
|
repository.save(sampleEntity);
|
||||||
|
|
||||||
// when
|
// when
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(termQuery("id", documentId)).build();
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(termQuery("id", documentId)).build();
|
||||||
Page<SampleEntity> sampleEntities = repository.search(searchQuery);
|
Page<SampleEntity> sampleEntities = repository.search(searchQuery);
|
||||||
|
|
||||||
// then
|
// then
|
||||||
@ -356,7 +358,7 @@ public class SimpleElasticsearchRepositoryTests {
|
|||||||
repository.deleteAll();
|
repository.deleteAll();
|
||||||
|
|
||||||
// then
|
// then
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
|
||||||
Page<SampleEntity> sampleEntities = repository.search(searchQuery);
|
Page<SampleEntity> sampleEntities = repository.search(searchQuery);
|
||||||
assertThat(sampleEntities.getTotalElements()).isEqualTo(0L);
|
assertThat(sampleEntities.getTotalElements()).isEqualTo(0L);
|
||||||
}
|
}
|
||||||
@ -377,7 +379,7 @@ public class SimpleElasticsearchRepositoryTests {
|
|||||||
repository.refresh();
|
repository.refresh();
|
||||||
|
|
||||||
// then
|
// then
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(termQuery("id", documentId)).build();
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(termQuery("id", documentId)).build();
|
||||||
Page<SampleEntity> sampleEntities = repository.search(searchQuery);
|
Page<SampleEntity> sampleEntities = repository.search(searchQuery);
|
||||||
assertThat(sampleEntities.getTotalElements()).isEqualTo(0L);
|
assertThat(sampleEntities.getTotalElements()).isEqualTo(0L);
|
||||||
assertThat(result).isEqualTo(1L);
|
assertThat(result).isEqualTo(1L);
|
||||||
@ -415,7 +417,7 @@ public class SimpleElasticsearchRepositoryTests {
|
|||||||
|
|
||||||
// then
|
// then
|
||||||
assertThat(result).hasSize(2);
|
assertThat(result).hasSize(2);
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
|
||||||
Page<SampleEntity> sampleEntities = repository.search(searchQuery);
|
Page<SampleEntity> sampleEntities = repository.search(searchQuery);
|
||||||
assertThat(sampleEntities.getTotalElements()).isEqualTo(1L);
|
assertThat(sampleEntities.getTotalElements()).isEqualTo(1L);
|
||||||
}
|
}
|
||||||
@ -449,7 +451,7 @@ public class SimpleElasticsearchRepositoryTests {
|
|||||||
|
|
||||||
// then
|
// then
|
||||||
assertThat(result).hasSize(1);
|
assertThat(result).hasSize(1);
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
|
||||||
Page<SampleEntity> sampleEntities = repository.search(searchQuery);
|
Page<SampleEntity> sampleEntities = repository.search(searchQuery);
|
||||||
assertThat(sampleEntities.getTotalElements()).isEqualTo(2L);
|
assertThat(sampleEntities.getTotalElements()).isEqualTo(2L);
|
||||||
}
|
}
|
||||||
@ -482,7 +484,7 @@ public class SimpleElasticsearchRepositoryTests {
|
|||||||
repository.refresh();
|
repository.refresh();
|
||||||
|
|
||||||
// then
|
// then
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
|
||||||
Page<SampleEntity> sampleEntities = repository.search(searchQuery);
|
Page<SampleEntity> sampleEntities = repository.search(searchQuery);
|
||||||
assertThat(sampleEntities.getTotalElements()).isEqualTo(2L);
|
assertThat(sampleEntities.getTotalElements()).isEqualTo(2L);
|
||||||
}
|
}
|
||||||
@ -502,7 +504,7 @@ public class SimpleElasticsearchRepositoryTests {
|
|||||||
repository.delete(sampleEntity);
|
repository.delete(sampleEntity);
|
||||||
|
|
||||||
// then
|
// then
|
||||||
SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(termQuery("id", documentId)).build();
|
NativeSearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(termQuery("id", documentId)).build();
|
||||||
Page<SampleEntity> sampleEntities = repository.search(searchQuery);
|
Page<SampleEntity> sampleEntities = repository.search(searchQuery);
|
||||||
assertThat(sampleEntities.getTotalElements()).isEqualTo(0L);
|
assertThat(sampleEntities.getTotalElements()).isEqualTo(0L);
|
||||||
}
|
}
|
||||||
|
@ -1,19 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xmlns:elasticsearch="http://www.springframework.org/schema/data/elasticsearch"
|
|
||||||
xsi:schemaLocation="http://www.springframework.org/schema/data/elasticsearch https://www.springframework.org/schema/data/elasticsearch/spring-elasticsearch.xsd
|
|
||||||
http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans-3.1.xsd">
|
|
||||||
|
|
||||||
<import resource="infrastructure.xml"/>
|
|
||||||
|
|
||||||
<bean name="elasticsearchTemplate"
|
|
||||||
class="org.springframework.data.elasticsearch.core.ElasticsearchTemplate">
|
|
||||||
<constructor-arg name="client" ref="client"/>
|
|
||||||
</bean>
|
|
||||||
|
|
||||||
<elasticsearch:repositories
|
|
||||||
base-package="org.springframework.data.elasticsearch.repositories.setting.dynamic"
|
|
||||||
consider-nested-repositories="true"/>
|
|
||||||
|
|
||||||
</beans>
|
|
@ -1,19 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xmlns:elasticsearch="http://www.springframework.org/schema/data/elasticsearch"
|
|
||||||
xsi:schemaLocation="http://www.springframework.org/schema/data/elasticsearch https://www.springframework.org/schema/data/elasticsearch/spring-elasticsearch.xsd
|
|
||||||
http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans-3.1.xsd">
|
|
||||||
|
|
||||||
<import resource="infrastructure.xml"/>
|
|
||||||
|
|
||||||
<bean name="elasticsearchTemplate"
|
|
||||||
class="org.springframework.data.elasticsearch.core.ElasticsearchTemplate">
|
|
||||||
<constructor-arg name="client" ref="client"/>
|
|
||||||
</bean>
|
|
||||||
|
|
||||||
<elasticsearch:repositories
|
|
||||||
base-package="org.springframework.data.elasticsearch.repositories.uuidkeyed"
|
|
||||||
consider-nested-repositories="true"/>
|
|
||||||
|
|
||||||
</beans>
|
|
Loading…
x
Reference in New Issue
Block a user