use of org.springframework.data.elasticsearch.core.query.Query in project servicecomb-pack by apache.
the class ElasticsearchTransactionRepository method getSlowGlobalTransactionsTopN.
@Override
public List<GlobalTransaction> getSlowGlobalTransactionsTopN(int n) {
List<GlobalTransaction> globalTransactions = new ArrayList();
Query query = new NativeSearchQueryBuilder().withSearchType(SearchType.DFS_QUERY_THEN_FETCH).withQuery(QueryBuilders.matchAllQuery()).withSort(SortBuilders.fieldSort("durationTime").order(SortOrder.DESC)).withPageable(PageRequest.of(0, n)).build();
SearchHits<GlobalTransactionDocument> result = this.template.search(query, GlobalTransactionDocument.class);
result.forEach(hit -> {
globalTransactions.add(hit.getContent());
});
return globalTransactions;
}
use of org.springframework.data.elasticsearch.core.query.Query in project servicecomb-pack by apache.
the class ElasticsearchTransactionRepository method getTransactionStatistics.
public Map<String, Long> getTransactionStatistics() {
Map<String, Long> statistics = new HashMap<>();
Query query = new NativeSearchQueryBuilder().addAggregation(AggregationBuilders.terms("count_group_by_state").field("state.keyword")).build();
SearchHits<Map> result = this.template.search(query, Map.class, IndexCoordinates.of(INDEX_NAME));
if (result.getTotalHits() > 0) {
final ParsedStringTerms groupState = result.getAggregations().get("count_group_by_state");
statistics = groupState.getBuckets().stream().collect(Collectors.toMap(MultiBucketsAggregation.Bucket::getKeyAsString, MultiBucketsAggregation.Bucket::getDocCount));
}
return statistics;
}
use of org.springframework.data.elasticsearch.core.query.Query in project prolog by woowacourse.
the class StudylogDocumentService method findBySearchKeyword.
@Override
public StudylogDocumentResponse findBySearchKeyword(String keyword, List<Long> tags, List<Long> missions, List<Long> levels, List<String> usernames, LocalDate start, LocalDate end, Pageable pageable) {
final Query query = StudylogDocumentQueryBuilder.makeQuery(preprocess(keyword), tags, missions, levels, usernames, start, end, pageable);
// Query 결과를 ES에서 조회한다.
final SearchHits<StudylogDocument> searchHits = elasticsearchRestTemplate.search(query, StudylogDocument.class, IndexCoordinates.of("studylog-document"));
// 조회된 SearchHits를 페이징할 수 있는 SearchPage로 변경한다.
final SearchPage<StudylogDocument> searchPages = SearchHitSupport.searchPageFor(searchHits, query.getPageable());
final List<Long> studylogIds = searchPages.stream().map(searchPage -> searchPage.getContent().getId()).collect(toList());
return StudylogDocumentResponse.of(studylogIds, searchPages.getTotalElements(), searchPages.getTotalPages(), searchPages.getNumber());
}
use of org.springframework.data.elasticsearch.core.query.Query in project servicecomb-pack by apache.
the class ElasticsearchTransactionRepository method getGlobalTransactionByGlobalTxId.
@Override
public GlobalTransaction getGlobalTransactionByGlobalTxId(String globalTxId) {
Query query = new NativeSearchQueryBuilder().withIds(Collections.singletonList(globalTxId)).build();
SearchHit<GlobalTransactionDocument> result = this.template.searchOne(query, GlobalTransactionDocument.class);
return result.getContent();
}
use of org.springframework.data.elasticsearch.core.query.Query in project spring-study by backtony.
the class MemberSearchQueryRepository method findByStartWithNickname.
public List<MemberDocument> findByStartWithNickname(String nickname, Pageable pageable) {
Criteria criteria = Criteria.where("nickname").startsWith(nickname);
Query query = new CriteriaQuery(criteria).setPageable(pageable);
SearchHits<MemberDocument> search = operations.search(query, MemberDocument.class);
return search.stream().map(SearchHit::getContent).collect(Collectors.toList());
}
Aggregations