栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

elasticSearch高级查询

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

elasticSearch高级查询

elasticSearch高级查询
        SearchRequest searchRequest = new SearchRequest();
        searchRequest.indices("user");
全量查询
searchRequest.source(new SearchSourceBuilder().query(QueryBuilders.matchAllQuery()));

        SearchResponse searchresponse = esClient.search(searchRequest, RequestOptions.DEFAULT);
        SearchHits hits = searchresponse.getHits();//数据

        System.out.println(hits.getTotalHits());
        System.out.println(searchresponse.getTook());

        //遍历结果
        for ( SearchHit hit: hits){
            System.out.println(hit.getSourceAsString());
        }

条件查询
searchRequest.source(new SearchSourceBuilder().query(QueryBuilders.termQuery("age",30)));

        SearchResponse search = esClient.search(searchRequest, RequestOptions.DEFAULT);
        SearchHits hits1 = search.getHits();
        for (SearchHit hit:hits1){
            System.out.println(hit.getSourceAsString());
        }

分页查询
SearchSourceBuilder builder = new SearchSourceBuilder().query(QueryBuilders.matchAllQuery());
        //从第几条开始(当前页码-1)*每页的显示数据条数
        builder.from(0);
        //一页显示几条
        builder.size(2);
        searchRequest.source(builder);

        SearchResponse search1 = esClient.search(searchRequest, RequestOptions.DEFAULT);

        for (SearchHit hit : search1.getHits()){
            System.out.println(hit.getSourceAsString());
        }
查询排序
builder.sort("age", SortOrder.DESC);
过滤字段
//不包含什么
String[] excludes = {};
//包含什么
String[] includes = {"name"};
builder.fetchSource(includes,excludes);

组合查询
 SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
        BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();

        //boolQueryBuilder.must(QueryBuilders.matchQuery("age",30));
        //boolQueryBuilder.must(QueryBuilders.matchQuery("sex","男"));
        //boolQueryBuilder.mustNot(QueryBuilders.matchQuery("sex","男"));
        boolQueryBuilder.should(QueryBuilders.matchQuery("age",30));
        boolQueryBuilder.should(QueryBuilders.matchQuery("age",40));

        searchSourceBuilder.query(boolQueryBuilder);

范围查询
RangeQueryBuilder rangeQuery = QueryBuilders.rangeQuery("age");

        rangeQuery.gte(30);
        rangeQuery.lte(50);

        searchSourceBuilder.query(rangeQuery);
模糊查询
searchSourceBuilder.query(QueryBuilders.fuzzyQuery("name","wangwu").fuzziness(Fuzziness.ONE));
高亮查询
//高亮查询
        TermQueryBuilder termQueryBuilder = QueryBuilders.termQuery("name", "zhangsan");

        HighlightBuilder highlightBuilder = new HighlightBuilder();
        highlightBuilder.preTags("");
        highlightBuilder.postTags(" 
聚合查询 
        MaxAggregationBuilder field = AggregationBuilders.max("maxAge").field("age");

        searchSourceBuilder.aggregation(field);
分组查询
//分组查询
        TermsAggregationBuilder field1 = AggregationBuilders.terms("ageGroup").field("age");
        searchSourceBuilder.aggregation(field1);
 
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/786353.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号