前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Elasticsearch6.6.x 版本的学习(一)es 安装 和 JestClient 进行操作Elasticsearch6.6.x

Elasticsearch6.6.x 版本的学习(一)es 安装 和 JestClient 进行操作Elasticsearch6.6.x

作者头像
一写代码就开心
发布2021-09-26 11:02:39
4720
发布2021-09-26 11:02:39
举报
文章被收录于专栏:java和python

目录

一张图展示我们要学的东西

Elasticsearch和solr区别

ES下载安装

前提是你要本地安装jdk1.8以上的版本

Elasticsearch 7.6.1学习(一)下载windows 版本的es,下载可视化界面,使用kibana

ES head 插件的安装

他是一个web的前段工具,需要有node环境。

打开这个app.js

将这个改为es的地址

cmd里面进入这个目录

代码语言:javascript
复制
npm  run  start

以上就启动了

以上就启动这个了

ES 内置的REST接口

利用Kibana 对es 进行crud

Kibana 是一个可视化工具,需要配置这个工具要连接的es的地址

默认是localhost ,如果是要操作服务器上面的es,那么就要改这个里面的地址了

核心概念

前提

es是有集群的,比如这个集群里面有3个,那么3个es是在不同的服务器上面。一个es 里面可以创建很多的索引,就是索引库,就相当于数据库,创建的时候会定义分片的个数。分为主分片和父分片。

举个例子,集群有3个,在不同的服务器上面。你创建一个索引库,这个索引里面有2个主分片,每一个主分片有1个父分片。那么这个索引是在3个服务器上面都有的,并且每一个主分片和他对应的父分片在不同的服务器上面,也就是每一个服务器上面的es里面保存的数据都是一样的,只是分片不一样。

cluster

Shards

Replicas

Gateway

JestClient 进行操作Elasticsearch6.6.x

导入依赖

代码语言:javascript
复制
 <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.7.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>



 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
 </dependency>



 <dependency>
            <groupId>io.searchbox</groupId>
            <artifactId>jest</artifactId>
            <version>6.3.1</version>
 </dependency>

配置文件

代码语言:javascript
复制
spring.elasticsearch.jest.uris=http://127.0.0.1:9200
spring.data.elasticsearch.cluster-nodes=localhost:9300
spring.data.elasticsearch.cluster-name=my-application

写实体类

代码语言:javascript
复制
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class people {

    private Integer id;

    private String name;

    private String phone;
}

写业务层,实现crud

创建索引库

代码语言:javascript
复制
@RestController
public class IndexController {

导入依赖,就可以直接使用
    @Autowired
    private JestClient jestClient;

    @GetMapping("createIndex")
    public String createIndex(String indexName) throws Exception{
        CreateIndex createIndex = new CreateIndex.Builder(indexName).build();

        System.out.println(createIndex);
        JestResult result = jestClient.execute(createIndex);
        return result.getJsonString();
    }

删除索引库

代码语言:javascript
复制
    @GetMapping("deleteIndex")
    public String deleteIndex(String indexName) throws Exception{
        DeleteIndex deleteIndex = new DeleteIndex.Builder(indexName).build();
        JestResult result = jestClient.execute(deleteIndex);
        return result.getJsonString();
    }

新增文档数据

代码语言:javascript
复制
  @GetMapping("creatDoc")
    public String creatDoc() throws Exception{

        people people = new people();
        people.setPhone("ddd");
        people.setName("iii");
        people.setId(55);
        Index.Builder builder = new Index.Builder(people);
        Index index = builder.index("people").type("peopledoc").build();
        JestResult result = jestClient.execute(index);
        return result.getJsonString();
    }

删除文档数据

代码语言:javascript
复制
 @GetMapping("deleteDoc")
    public String deleteDoc(String id) throws Exception{
        Delete index = new Delete.Builder(id).index("people").type("peopledoc").build();
        JestResult result = jestClient.execute(index);
        return result.getJsonString();
    }

查询文档数据

代码语言:javascript
复制
 @GetMapping("search")
    public String search(String Keyword) throws Exception{
        SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();


        searchSourceBuilder.query(new MultiMatchQueryBuilder(Keyword, "name","phone"));


        System.out.println(searchSourceBuilder.toString());


        SearchResult result = jestClient.execute(new Search.Builder(searchSourceBuilder.toString())
                .addIndex("people")
                .addType("peopledoc")
                .build());



        List<SearchResult.Hit<people, Void>> hits = result.getHits(people.class);


        for(SearchResult.Hit<people, Void> hit:  hits){
            people source = hit.source;

            System.out.println(source.getId());
            System.out.println(source.getPhone());
            System.out.println(source.getName());
            System.out.println("==============");
        }




        return result.getJsonString();
    }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/09/19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目录
  • 一张图展示我们要学的东西
  • Elasticsearch和solr区别
  • ES下载安装
  • ES head 插件的安装
  • ES 内置的REST接口
  • 利用Kibana 对es 进行crud
  • 核心概念
    • 前提
      • cluster
        • Shards
          • Replicas
            • Gateway
            • JestClient 进行操作Elasticsearch6.6.x
              • 创建索引库
                • 删除索引库
                  • 新增文档数据
                    • 删除文档数据
                      • 查询文档数据
                      相关产品与服务
                      Elasticsearch Service
                      腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档