Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public Map findAllByIndexParams(AuctionIndexSearchParams searchParams, Pageable pageable) {
- List rows = new ArrayList();
- Map response = new HashMap();
- final List<FilterBuilder> filters = Lists.newArrayList();
- final NativeSearchQueryBuilder searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery());
- Optional.ofNullable(searchParams.getCategoryId()).ifPresent(v -> filters.add(boolFilter().must(termFilter("cat", v))));
- Optional.ofNullable(searchParams.getCurrency()).ifPresent(v -> filters.add(boolFilter().must(termFilter("curr", v))));
- Optional.ofNullable(searchParams.getTreeCategoryId()).ifPresent(v -> filters.add(boolFilter().must(termFilter("tcat", v))));
- Optional.ofNullable(searchParams.getUid()).ifPresent(v -> filters.add(boolFilter().must(termFilter("uid", v))));
- // //access for many uids
- // if (searchParams.getUids() != null) {
- // Optional.ofNullable(searchParams.getUids().split(",")).ifPresent(v -> {
- // filters.add(boolFilter().must(termsFilter("uid", v)));
- // });
- // }
- //
- // //access for many categories
- // if (searchParams.getCategories() != null) {
- // Optional.ofNullable(searchParams.getCategories().split(",")).ifPresent(v -> {
- // filters.add(boolFilter().must(termsFilter("cat", v)));
- // });
- // }
- final BoolQueryBuilder boolQueryBuilder = new BoolQueryBuilder();
- //access for many uids
- if (searchParams.getUids() != null) {
- if (searchParams.getItemId() != null || searchParams.getTitle() != null) {
- Optional.ofNullable(searchParams.getUids().split(",")).ifPresent(v -> {
- filters.add(boolFilter().must(termsFilter("uid", v)));
- });
- } else {
- for (String user : searchParams.getUids().split(",")) {
- boolQueryBuilder.should(queryStringQuery(user).field("uid"));
- }
- }
- }
- //access for many categories
- if (searchParams.getCategories() != null) {
- Optional.ofNullable(searchParams.getCategories().split(",")).ifPresent(v -> {
- filters.add(boolFilter().must(termsFilter("cat", v)));
- });
- }
- if (searchParams.getItemId() != null) {
- boolQueryBuilder.must(queryStringQuery(searchParams.getItemId()).field("_id"));
- }
- if (Optional.ofNullable(searchParams.getTitle()).isPresent()) {
- boolQueryBuilder.must(queryStringQuery(searchParams.getTitle()).analyzeWildcard(true).field("title"));
- }
- if (searchParams.getLoc() != null) {
- filters.add(boolFilter().must(termsFilter("loc", searchParams.getLoc())));
- // boolQueryBuilder.must(queryStringQuery(searchParams.getLoc()).field("loc"));
- }
- if (searchParams.getPow() != null) {
- filters.add(boolFilter().must(termsFilter("pow", searchParams.getPow())));
- // boolQueryBuilder.must(queryStringQuery(searchParams.getPow()).field("pow"));
- }
- if (searchParams.getWoj() != null) {
- filters.add(boolFilter().must(termsFilter("woj", searchParams.getWoj())));
- // boolQueryBuilder.must(queryStringQuery(searchParams.getWoj()).field("woj"));
- }
- if (searchParams.getLang() != null) {
- boolQueryBuilder.must(queryStringQuery(searchParams.getLang()).field("lang"));
- }
- if (Optional.ofNullable(searchParams.getCatdecFrom()).isPresent()
- || Optional.ofNullable(searchParams.getCatdecTo()).isPresent()) {
- filters.add(rangeFilter("catdec").from(searchParams.getCatdecFrom()).to(searchParams.getCatdecTo()));
- }
- // if (searchParams.getCatdec() != null) {
- // boolQueryBuilder.must(queryStringQuery(String.valueOf(searchParams.getCatdec())).field("catdec"));
- // }
- if (Optional.ofNullable(searchParams.getStartDateFrom()).isPresent()
- || Optional.ofNullable(searchParams.getStartDateTo()).isPresent()) {
- filters.add(rangeFilter("start_date").from(searchParams.getStartDateFrom()).to(searchParams.getStartDateTo()));
- }
- if (Optional.ofNullable(searchParams.getEndDateFrom()).isPresent()
- || Optional.ofNullable(searchParams.getEndDateTo()).isPresent()) {
- filters.add(rangeFilter("end_date").from(searchParams.getEndDateFrom()).to(searchParams.getEndDateTo()));
- }
- if (Optional.ofNullable(searchParams.getPriceFrom()).isPresent()
- || Optional.ofNullable(searchParams.getPriceTo()).isPresent()) {
- filters.add(rangeFilter("price").from(searchParams.getPriceFrom()).to(searchParams.getPriceTo()));
- }
- searchQuery.withQuery(boolQueryBuilder);
- FilterBuilder[] filterArr = new FilterBuilder[filters.size()];
- filterArr = filters.toArray(filterArr);
- searchQuery.withFilter(andFilter(filterArr));
- if (searchParams.getOrderBy() != null && searchParams.getOrderDir() != null) {
- if (searchParams.getOrderDir().toLowerCase().equals("asc")) {
- searchQuery.withSort(SortBuilders.fieldSort(searchParams.getOrderBy()).order(SortOrder.ASC));
- } else {
- searchQuery.withSort(SortBuilders.fieldSort(searchParams.getOrderBy()).order(SortOrder.DESC));
- }
- }
- String scrollId = searchTemplate.scan(searchQuery.build(), 1000, false);
- Page<AuctionIndex> page = searchTemplate.scroll(scrollId, 5000L, AuctionIndex.class);
- if (page.hasContent()) {
- while (true) {
- for (AuctionIndex hit : page.getContent()) {
- Auction row = Auction.builder()
- .lang(hit.getLang())
- .catdec(hit.getCatdec())
- .cat(hit.getCat())
- .item(Long.parseLong(hit.getId()))
- .endts(hit.getEnd_date())
- .startts(hit.getStart_date())
- .loc(hit.getLoc())
- .pow(hit.getPow())
- .woj(hit.getWoj())
- .price(hit.getPrice())
- .qty(hit.getQty())
- .title(hit.getTitle())
- .user(hit.getUid())
- .catName(hit.getCat_name())
- .build();
- rows.add(row);
- }
- page = searchTemplate.scroll(scrollId, 5000L, AuctionIndex.class);
- if (page.hasContent() == false) {
- break;
- }
- }
- }
- response.put("content", rows);
- return response;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement