ElasticSearchg에서 강조표시를 추가하면 텍스트에 문제가 표시되지 않습니다.

21198 단어 ElasticSearch
코드의 마지막 부분을 직접 보다
public NativeSearchQuery getNativeSearchQuery(ProcessLog condition, PageParam pageParam) {
     
        Sort sortBy = Sort.by(CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, pageParam.getSortCondition())).descending();
        SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();

        if (StringUtils.equalsIgnoreCase("asc", pageParam.getSortModel())) {
     
            sortBy = sortBy.ascending();
        }
        Pageable pageable = PageRequest.of(pageParam.getPageNum() - 1, pageParam.getPageSize(), sortBy);

        if (StringUtils.isEmpty(pageParam.getSortCondition())) {
     
            pageParam.setSortCondition("requestTime");
        }
        BoolQueryBuilder boolQueryBuilder = boolQuery();

        NativeSearchQueryBuilder nativeSearchQueryBuilder = new NativeSearchQueryBuilder();

        if (StringUtils.isNotEmpty(condition.getUser())) {
     
            boolQueryBuilder.must(matchPhraseQuery("user", condition.getUser()));
        }

        if (StringUtils.isNotEmpty(condition.getRequestUri())) {
     
            boolQueryBuilder.must(matchPhraseQuery("requestUri", condition.getRequestUri()));
        }

        if (StringUtils.isNotEmpty(condition.getParams())) {
     
            String params = condition.getParams();
            String[] paramArray = params.split(",");
            for (String param : paramArray) {
     
                boolQueryBuilder.must(matchPhraseQuery("params", param));
            }
        }

        if (StringUtils.isNotEmpty(condition.getEmail())) {
     
            boolQueryBuilder.must(matchPhraseQuery("email", condition.getEmail()));
        }

        if (StringUtils.isNotEmpty(condition.getPeerId())) {
     
            boolQueryBuilder.must(matchPhraseQuery("peerId", condition.getPeerId()));
        }

        if (StringUtils.isNotEmpty(condition.getServerName())) {
     
            boolQueryBuilder.must(matchPhraseQuery("serverName.keyword", condition.getServerName()));
        }

        if (condition.getStatus() != null) {
     
            boolQueryBuilder.must(matchPhraseQuery("status", condition.getStatus()));
        }

        if (StringUtils.isNotEmpty(condition.getMethod())) {
     
            boolQueryBuilder.must(matchPhraseQuery("method", condition.getMethod()));
        }

        if (condition.getStartTime() != null && condition.getEndTime() != null) {
     
            boolQueryBuilder.must(
                    rangeQuery("requestTime")
                            .gte(condition.getStartTime())
                            .lt(condition.getEndTime())
            );
        }
        nativeSearchQueryBuilder.withQuery(boolQueryBuilder);
        nativeSearchQueryBuilder.withHighlightBuilder(new HighlightBuilder()
                .field("id")
                .field("email")
                .field("serverName")
                .field("method")
                .field("requestUri")
                .field("params")
                .field("peerId")
                .field("status")
                .preTags("")
                .postTags("")
                 //          
                .fragmentSize(800000)
                .numOfFragments(0)
                .requireFieldMatch(false))
                .withPageable(pageable);
        return nativeSearchQueryBuilder.build();
    }

좋은 웹페이지 즐겨찾기