在SpringBoot中对es集群的查询操作

这篇具有很好参考价值的文章主要介绍了在SpringBoot中对es集群的查询操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        在进行查询之前要先给ll索引中插入数据:

 POST /ll/product/1
{
	"id":1,
 "title": "小米手机Mix",
 "category": "手机",
 "brand": "小米",
 "price": 2899.00,
 "images": "http://image.ll.com/12479122.jpg"

}

POST /ll/product/2
{
	"id":2,
 "title": "坚果手机R1",
 "category": "手机",
 "brand": "锤子",
 "price": 3699.00,
 "images": "http://image.ll.com/12479122.jpg"

}

POST /ll/product/3
{
	"id":3,
 "title": "华为META20",  
 "category": "手机",
 "brand": "华为",
 "price": 4499.00,
 "images": "http://image.ll.com/12479122.jpg"

}

POST /ll/product/4
{
	"id":4,
 "title": "小米Pro",
 "category": "手机",
 "brand": "小米",
 "price": 4299.00,
 "images": "http://image.ll.com/12479122.jpg"

}

POST /ll/product/5
{
	"id":5,
 "title": "荣耀V20",
 "category": "手机",
 "brand": "华为",
 "price": 2799.00,
 "images": "http://image.ll.com/12479122.jpg"

}

            将以上代码复制到kibana的控制台上运行

在SpringBoot中对es集群的查询操作,elasticsearch,大数据,搜索引擎

         运行完后可以到打开head插件查看信息

在SpringBoot中对es集群的查询操作,elasticsearch,大数据,搜索引擎

 

        数据准备完成后我们就可以开始查询了

      1.查询所有索引的数据          match_all

  @Test//搜索数据
    public void search() throws IOException{
        SearchRequest request = new SearchRequest();//搜索对象

        SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();//构建工具
         //绑定类型       match_all,math,bool,term,fuzzy,filter
        sourceBuilder.query(QueryBuilders.matchAllQuery());
        //执行查询操作
        request.source(sourceBuilder);
        //执行查询搜索
        SearchResponse response = restHighLevelClient.search(request, RequestOptions.DEFAULT);
        //解析响应的结果数据
        SearchHit[] hits = response.getHits().getHits();
        for (SearchHit hit : hits) {
            String json = hit.getSourceAsString();//转为json格式
            Producter producter = gson.fromJson(json, Producter.class);//转为java对象
            System.err.println(producter);
        }
    }

在SpringBoot中对es集群的查询操作,elasticsearch,大数据,搜索引擎

        

        2.关键字查询           match 

   @Test//matchquery
    public void matchQuery()throws Exception{
        SearchRequest request = new SearchRequest();

        SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
        sourceBuilder.query(QueryBuilders.matchQuery("title", "小米"));

        request.source(sourceBuilder);
        SearchResponse response = restHighLevelClient.search(request, RequestOptions.DEFAULT);
        SearchHit[] hits = response.getHits().getHits();
        for (SearchHit hit : hits) {
            String json = hit.getSourceAsString();//转为json格式
            Producter producter = gson.fromJson(json, Producter.class);//转为java对象
            System.err.println(producter);
        }
    }

在SpringBoot中对es集群的查询操作,elasticsearch,大数据,搜索引擎

        通过上述两个查询我们发现,查询数据的时候会有很多冗余的部分,所以我们可以将这一部分代码进行封装,在查询的时候调用这个方法,下面的查询我都会调用封装的方法
    public void basicQuery(SearchSourceBuilder sourceBuilder) throws Exception{
        SearchRequest request = new SearchRequest();

        request.source(sourceBuilder);

        SearchResponse response = restHighLevelClient.search(request, RequestOptions.DEFAULT);
        //解析响应的结果数据
        SearchHit[] hits = response.getHits().getHits();
        for (SearchHit hit : hits) {
            String json = hit.getSourceAsString();//转为json格式
            Producter producter = gson.fromJson(json, Producter.class);//转为java对象
            System.err.println(producter);
        }
    }

         3.范围查询         range

@Test//范围查询
    public void rangeQuery()  throws Exception{
        SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
        sourceBuilder.query(QueryBuilders.rangeQuery("price").gte(3000).lt(4300));
        basicQuery(sourceBuilder);
    }

在SpringBoot中对es集群的查询操作,elasticsearch,大数据,搜索引擎

         4.过滤查询        source

 @Test//过滤查询
    public void  sourceQuery()  throws Exception{
        SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
        sourceBuilder.query(QueryBuilders.matchAllQuery());
        //添加过滤条件
        sourceBuilder.fetchSource(new String[]{"id","title","price"},null);
        basicQuery(sourceBuilder);
    }

在SpringBoot中对es集群的查询操作,elasticsearch,大数据,搜索引擎

       5.排序        sort

    @Test//排序 order
    public void  orderQuery()  throws Exception{
        SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
        sourceBuilder.query(QueryBuilders.matchAllQuery());
        //添加排序条件
        sourceBuilder.sort("price", SortOrder.DESC);//desc降序        asc升序
        basicQuery(sourceBuilder);
    }

在SpringBoot中对es集群的查询操作,elasticsearch,大数据,搜索引擎

        6. 分页        page

 @Test//分页 from当前页第一条数据的索引     size当前页的大小
    public void  pageQuery()  throws Exception{
        SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
        sourceBuilder.query(QueryBuilders.matchAllQuery());
        //添加分页条件
        int page = 2;//第二页的数据
        int size = 3;//每页展示三条数据
        sourceBuilder.from((page-1)*size);
        sourceBuilder.size(size);


        basicQuery(sourceBuilder);
    }

在SpringBoot中对es集群的查询操作,elasticsearch,大数据,搜索引擎文章来源地址https://www.toymoban.com/news/detail-528973.html

   

到了这里,关于在SpringBoot中对es集群的查询操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 原生语言操作和spring data中RestHighLevelClient操作Elasticsearch,索引,文档的基本操作,es的高级查询.查询结果处理. 数据聚合.相关性系数打分

    ​ Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性,能使数据在生产环境变得更有价值。Elasticsearch 的实现原理主要分为以下几个步骤,首先用户将数据提交到Elasti

    2024年02月05日
    浏览(59)
  • elasticSearch集群 springboot集成es 完全解析

    #编写compose.yml配置文件 #每个节点都创建一个elasticsearch.yml文件 用到的命令: systemctl start docker docker-compose up es和kibana版本必须一样 environment:配置容器内的环境变量 networks:创建一个名为elastic的局域网,让各节点以及kibana,es-head相互联系 network.host: 0.0.0.0:意为监听一切地址,可

    2024年02月03日
    浏览(35)
  • Java SpringBoot API 实现ES(Elasticsearch)搜索引擎的一系列操作(超详细)(模拟数据库操作)

    小编使用的是elasticsearch-7.3.2 基础说明: 启动:进入elasticsearch-7.3.2/bin目录,双击elasticsearch.bat进行启动,当出现一下界面说明,启动成功。也可以访问http://localhost:9200/ 启动ES管理:进入elasticsearch-head-master文件夹,然后进入cmd命令界面,输入npm run start 即可启动。访问http

    2024年02月04日
    浏览(44)
  • ES(Elasticsearch)+SpringBoot实现分页查询

    1.ES介绍   ES作为一个搜索工具,寄托于Lucene之上,提供了方便的数据存储和搜索服务,一般的用它来作为网页数据索引以及存储用户画像(即用户标签)数据,可以提供复具有复杂的查询条件的服务。例如在网页索引中,通过倒排的方式索引的方式,对文档进行分词存储,

    2024年02月16日
    浏览(37)
  • ElasticSearch系列 - SpringBoot整合ES:组合多个查询条件 bool 查询

    01. ElasticSearch 布尔查询是什么? 在实际应用中,我们很有可能会查询多个值或字段。 一个 bool 查询由三部分组成: must:所有的语句都必须(must) 匹配,与 AND 等价。 must_not:所有的语句都不能(must not)匹配,与 NOT 等价。 should:至少有一个语句要匹配,与 OR 等价。 02.

    2023年04月08日
    浏览(57)
  • ElasticSearch序列 - SpringBoot整合ES:范围查询 range

    01. ElasticSearch range查询是什么? Elasticsearch 中的 range 查询可以用于查询某个字段在一定范围内的文档。 range 查询可同时提供包含和不包含这两种范围表达式,可供组合的选项如下: gt : 大于(greater than) lt : 小于(less than) gte : = 大于或等于(greater than or equal to) lte : = 小于

    2024年02月09日
    浏览(32)
  • ElasticSearch系列 - SpringBoot整合ES:多个精确值查询 terms

    ElasticSearch - SpringBoot整合ES:多个精确值查询 terms 01. ElasticSearch terms 查询支持的数据类型 在Elasticsearch中,terms查询支持多种数据类型,包括: 字符串类型:可以将多个字符串值作为数组传递给terms查询,以匹配包含任何一个指定字符串值的文档。 数值类型:可以将多个数值作

    2024年02月16日
    浏览(58)
  • ElasticSearch序列 - SpringBoot整合ES:根据指定的 ids 查询

    1. ElasticSearch 根据 ids 查询文档 ① 索引文档,构造数据 ② 查询文档 id 为 1 或者 2 的文档: 我们索引文档时,文档的id为整型,为什么查询出来的文档 id为字符串类型呢?如果我们使用字符串类型的文档id查询呢? 可以看到仍然可以查询到匹配的文档。 在Elasticsearch中,文档

    2024年02月11日
    浏览(45)
  • ElasticSearch进阶:多种查询操作,各种ES查询以及在Java中的实现

    目录 前言 1 词条查询 1.1 等值查询-term 1.2 多值查询-terms 1.3 范围查询-range 1.4 前缀查询-prefix 1.5 通配符查询-wildcard 2 复合查询 2.1 布尔查询 2.2 Filter查询 3 聚合查询 3.1 最值、平均值、求和 3.2 去重查询 3.3 分组聚合 3.3.1 单条件分组 3.3.2 多条件分组 3.4 过滤聚合 ElasticSearch 第一篇

    2024年02月02日
    浏览(39)
  • ElasticSearch系列 - SpringBoot整合ES之全文搜索匹配查询 match

    官方文档地址:https://www.elastic.co/guide/en/elasticsearch/reference/index.html 权威指南:https://www.elastic.co/guide/cn/elasticsearch/guide/current/structured-search.html 1. 数据准备 官方测试数据下载地址:https://download.elastic.co/demos/kibana/gettingstarted/accounts.zip ,数据量很大,我们自己构造数据吧。 2. m

    2023年04月08日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包