[SpringBoot+Elasticsearch]RestHighLevelClient-Search APIs简单用法

163 阅读1分钟

1.RestHighLevelClient-Search APIs结构概览

a.png

2.RestHighLevelClient-Search APIs代码示例

@Service
public class EsOperateService {

    @Autowired
    @Qualifier("restHighLevelClient")
    RestHighLevelClient client;

    public Map<String, Object> getLog() {
        try {
            SearchRequest searchRequest = getSearchRequest();
            SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
            if (searchResponse != null && searchResponse.getHits() != null) {
                long total = searchResponse.getHits().getTotalHits().value;
                for (SearchHit field : searchResponse.getHits().getHits()) {
                    System.out.println(field.getSourceAsMap());
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    private SearchRequest getSearchRequest() {
        String[] indexList = {};
        SearchRequest searchRequest = new SearchRequest(indexList);
        searchRequest.source(getSourceBuilder());
        return searchRequest;
    }

    public SearchSourceBuilder getSourceBuilder() {
        SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
        sourceBuilder.query(getQueryBuilder());
        sourceBuilder.from(1);
        sourceBuilder.size(10);
        sourceBuilder.sort(new FieldSortBuilder("updateTime").order(SortOrder.ASC));
        return sourceBuilder;
    }

    private BoolQueryBuilder getQueryBuilder() {
        BoolQueryBuilder boolQueryBuilder = new BoolQueryBuilder();
        boolQueryBuilder.filter(QueryBuilders.termQuery("", ""));
        boolQueryBuilder.filter(QueryBuilders.rangeQuery("id").from(0, false).to(10, false));
        boolQueryBuilder.filter(QueryBuilders.wildcardQuery("", ""));
        return boolQueryBuilder;
    }
}