docker创建elasticsearch、elasticsearch-head部署及简单操作

news2024/11/25 14:37:08

elasticsearch部署

1  拉取elasticsearch镜像


     docker pull elasticsearch:7.7.0

2   创建文件映射路径

     mkdir /mydata/elasticsearch/data
     mkdir /mydata/elasticsearch/plugins
     mkdir /mydata/elasticsearch/config

3  文件夹授权
   


    chmod 777 /mydata/elasticsearch/data

4  修改配置文件


    cd /mydata/elasticsearch/config
    vi elasticsearch.yml
    填入如下内容:
    #集群名称
    cluster.name: "elasticsearch"
    network.host: 0.0.0.0
    #跨域设置
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    #http端口
    http.port: 9200
   #java端口
   transport.tcp.port: 9300

5  运行镜像:


   docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -d  -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms512m -Xmx512m"  \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data -v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins  \
-v /data/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml elasticsearch:7.7.0

6  访问页面:

   http://192.168.56.102:9200 查看是否部署成功

如出现如上内容,表示elasticsearch部署成功,就可以进行搜索操作了

elasticsearch-head部署

    为了更好的使用elasticsearch,需要部署elasticsearch-head插件

1  #拉取镜像


      docker pull mobz/elasticsearch-head:5

  2  启动容器


    docker run -d --name elasticsearch-head -p 9100:9100 mobz/elasticsearch-head:5

   3 访问elasticsearch-head页面内容

        

elasticsearch-head的页面操作

    1  查询所有数据

                

   出现如上所示报错。解决方案如下:

  1  docker exec -it {elasticearch-head}容器名称 /bin/bash

   2  修改elasticsearch-head的js文件

       vi  /usr/src/app/_site/vendor.js

      a  第6886行 :/contentType: "application/x-www-form-urlencoded
          改为 :contentType: "application/json;charset=UTF-8"

       b  第7574行 var inspectData = s.contentType === "application/x-www-form-urlencoded" &&
           改为 var inspectData = s.contentType === "application/json;charset=UTF-8" &&

   3  重启elasticsearch-head容器

其他页面操作参见博客:

ElasticSearch-Head操作Elasticsearch进行查询数据(查询所有数据,查询单个索引所有数据,查询单个索引指定类型所有数据,根据指定条件查询数据)_elasticsearch-head 查询-CSDN博客

使用java操作elasticsearch

 1 引入依赖:

  

<dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>elasticsearch-rest-high-level-client</artifactId>
            <version>7.7.0</version>
            <exclusions>
                <exclusion>
                    <groupId>org.elasticsearch</groupId>
                    <artifactId>elasticsearch</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.elasticsearch</groupId>
            <artifactId>elasticsearch</artifactId>
            <version>7.7.0</version>
        </dependency>

2  相关crud操作

public class EsHandler {

    private static final String ES_SERVER_ADDRESS = "192.168.56.102";
    private static final String IDX_NAME = "employee";

    private static RestHighLevelClient CLIENT = null;

    public static void main(String[] args) throws IOException {
        // 初始化
        init();

        // 创建索引数据
        createIndex();
        // 修改数据
//        updateDoc();
        // 删除数据
//        deleteDoc();
        // 查询数据
//        searchDoc();

        // 关闭连接
        close();

    }

    private static void init() {
        CLIENT = new RestHighLevelClient(RestClient.builder(
                new HttpHost(ES_SERVER_ADDRESS,9200,"http")));

    }

    private static void close() throws IOException {
        CLIENT.close();
    }

    private static void createIndex() throws IOException {
        IndexRequest indexRequest = new IndexRequest(IDX_NAME);

        Map<String, String> insertInfo = new HashMap<>();
        insertInfo.put("name","wangwu");

        indexRequest.source(insertInfo);

        IndexResponse response = CLIENT.index(indexRequest, RequestOptions.DEFAULT);

        System.out.println("ID:" + response.getId() + "/t" + "RESULT:" + response.getResult());

    }

    private static void updateDoc() throws IOException {
        UpdateRequest updateRequest = new UpdateRequest(IDX_NAME,"8");

        // 注意此处的泛型类型:<String,Object>,如果是其他的泛型类型,es的api会认为是另一套api调用
        Map<String, Object> sourceInfo = new HashMap<>();
        sourceInfo.put("name","骡子摊");

//        updateRequest.doc("name","隆昌羊肉汤");

        updateRequest.doc(sourceInfo);

        updateRequest.timeout("1s");
        updateRequest.retryOnConflict(3);

        UpdateResponse response = CLIENT.update(updateRequest, RequestOptions.DEFAULT);

        System.out.println("ID:" + response.getId() + "/t" + "RESULT:" + response.getResult());
    }

    private static void deleteDoc() throws IOException {
        DeleteRequest deleteRequest = new DeleteRequest(IDX_NAME,"9");

        DeleteResponse response = CLIENT.delete(deleteRequest, RequestOptions.DEFAULT);

        System.out.println("ID:" + response.getId() + "/t" + "RESULT:" + response.getResult());
    }

    /**
     *
     * @throws IOException
     */
    private static void searchDoc() throws IOException {

        SearchSourceBuilder builder = new SearchSourceBuilder()
                .query(QueryBuilders.matchQuery("message", "execute"));

        SearchRequest searchRequest = new SearchRequest();
        searchRequest.indices("rizhi-log-*");
        searchRequest.source(builder);
        // 执行请求
        SearchResponse response = CLIENT.search(searchRequest, RequestOptions.DEFAULT);
        // 解析查询结果
        System.out.println(response.toString());
    }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1090583.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

详解cv2.addWeighted函数【使用 OpenCV 添加(混合)两个图像-Python版本】

文章目录 简介函数原型代码示例参考资料 简介 有的时候我们需要将两张图片在alpha通道进行混合&#xff0c;比如深度学习数据集增强方式MixUp。OpenCV的addWeighted提供了相关操作&#xff0c;瓷片博客将详细介绍这个函数&#xff0c;并给出代码示例。&#x1f680;&#x1f6…

有外媒称,Linux 发行版Ubuntu 23.10也将正式支持树莓派 5

据了解&#xff0c;在树莓派 4 单板计算机推出 4年后&#xff0c;树莓派 5也在上月末正式发布&#xff0c;并且两者对比之后可以发现&#xff0c;树莓派 5主要提升性能是添加了对 PCIe 2.0的支持。 Multiable万达宝医疗ERP(www.multiable.com.cn/solutions_yl)具备严格的保质期…

搭建vue后台管理系统框架

第一步&#xff1a;创建vue项目vue create 项目名称&#xff0c;并安装element-ui Vue CLI v3.1.3 ? Please pick a preset: Manually select features ? Check the features needed for your project: Babel, Router, CSS Pre-processors, Linter 1、是否使用history模式的…

【Express】静态资源

通过 Express 内置的 express.static 可以方便地托管静态文件&#xff0c;例如图片、CSS、JavaScript 文件等。 将静态资源文件所在的目录作为参数传递给 express.static 中间件就可以提供静态资源文件的访问了。 // 配置静态资源 app.use(express.static(public)); app.use(…

条件表达式

1.语法&#xff1a; 如果写范围&#xff0c;case不用写字段名 内容&#xff1a;case 字段名 when 值/或者值的范围 then 转化成的值 as 列名 end 语义&#xff1a;选择转换后新起一列 as不写默认text 2.其他用法&#xff1a; 2.1.计次 count&#xff08;...&#xff09;…

Master PDF Editor v5.9.70便携版

软件介绍 Master PDF Editor中文版是一款小巧的多功能PDF编辑器,可以轻松查看,创建,修改,批注,签名,扫描,OCR和打印PDF文档.高级注释工具,可以添加任意便笺指示对象突出显示,添加下划线和删除,而无需更改源PDF文件. 软件截图 更新日志 code-industry.net/what-is-new-in-mas…

【原创】在Linux上安装Zabbix客户端

检查Linux版本 cat /etc/issue得到结果 Ubuntu 18.04.2 LTS \n \l 下载软件 到 Zabbix官网&#xff08;https://www.zabbix.com/&#xff09; 依次点击 Download>Zabbix Packages>Choose your platform>ZABBIX VERSION>6.4>OS DISTRIBUTION>Ubuntu>OS …

[科研琐事] 安装服务器到机柜的二三事

1. 机柜参数 宽度&#xff1a;一般机器都是符合的&#xff1b; 深度&#xff1a;对应服务器最长的那个边&#xff1b; 厚度&#xff08;高度&#xff09;&#xff1a;1/2/3/4U&#xff0c;就是机柜上写的刻度数字&#xff0c;1U1.75英寸。 1U4.45cm 2U4.45cm * 2 3U4.45cm * …

关于LEFT JOIN的一次理解

先看一段例子&#xff1a; SELECTproduct_half_spu.id AS halfSpuId,product_half_spu.half_spu_code,product_half_spu.half_spu_name,COUNT( product_sku.id ) AS skuCount,product_half_spu.create_on,product_half_spu.create_by,product_half_spu.upload_pic_date,produc…

业务安全五重价值:防攻击、保稳定、助增收、促合规、提升满意度

目录 防范各类威胁攻击 保障业务的连续性和稳定性 保障业务的合规性 提升企业营收和发展 提升企业满意度和品牌知名度 2023年暑假被“票贩子”和“黄牛”攻陷。他们利用各种手段抢先预约名额&#xff0c;然后加价出售给游客&#xff0c;导致了门票供不应求的局面&#xff…

CNN-generated images are surprisingly easy to spot... for now

CNN-generated images are surprisingly easy to spot… for now----《目前CNN生成的图像非常容易被发现》 背景&#xff1a; 研究者们发现&#xff0c;仅仅对一种由CNN模型生成的图像进行训练的分类器&#xff0c;也可以检测许多其他模型生成的结果。由此提出这样的观点&#…

thinkphp5.1 获取缓存cache(‘cache_name‘)特别慢,php 7.0 unserialize 特别慢

thinkphp5.1 获取缓存cache(‘cache_name’)特别慢&#xff0c;php 7.0 unserialize 特别慢 场景&#xff1a; 项目中大量使用了缓存&#xff0c;本地运行非常快&#xff0c;二三百毫秒&#xff0c;部署到服务器后 一个表格请求就七八秒&#xff0c;最初猜想是数据库查询慢&am…

Java进阶 之 再论面向对象(2)——类的定义及对象的使用 封装Encapsulation 关键字private,this

前言 在上一篇博客中&#xff0c;我们从面向过程和面向对象的编程思想谈起&#xff0c;阐述了类和对象在Java中的编程中的应用&#xff0c;此外&#xff0c;对于对象的内存&#xff0c;变量作用域&#xff0c;参数传递等进行了阐述。 Java进阶 之 再论面向对象&#xff08;1&…

噪声主动控制装置设计

目录 摘 要...................................................................................... 2 第一章 绪论........................................................................ 6 1.1 研究课题背景...................................................…

C++——多态调用和普通调用的本质区别

目录 一.多态特性 回顾一下多态特性的含义&#xff1a; 回顾多态特性的两大形成条件&#xff1a; 而普通调用和多态调用的本质区别在于&#xff1a; 二.理解调用 例一&#xff1a; 普通调用的理解1&#xff1a; 普通调用的理解2&#xff1a; 注&#xff1a;错误代码的…

【mfc/VS2022】计图实验:绘图工具设计知识笔记

绘制曲线&#xff08;贝塞尔曲线&#xff09;&#xff1a; 转自&#xff1a;CDC 类 | Microsoft Learn 绘制一条或多条贝塞尔曲线。 BOOL PolyBezier(const POINT* lpPoints,int nCount);参数 lpPoints 指向包含曲线端点和控制点的 POINT 数据结构数组。 nCount 指定 lpPo…

移远通信C-V2X模组产品 助力车载生态建设跑出“加速度”

10月11日&#xff0c;移远通信受邀参加“长安创新驱动数智未来”行业研讨会。 本次会议围绕车载行业智能化转型取得的阶段性技术与终端成果展开讨论&#xff0c;旨在持续助力汽车行业智能出行的变革。移远通信产品总监侯海燕于会议上针对当下车载行业发展热点——C-V2X技术的相…

面经-北京泛微二面-Java开发

北京泛微二面-Java开发。以下内容为面试复盘&#xff0c;面试官问题无改动&#xff0c;回答已进行修正。 自我介绍 我是XXXX&#xff0c;来自XXX… 面试官提问&#xff1a; 1.像这些比赛的话&#xff0c;你是自己参加还是社团的人一起参加&#xff1f; 答&#xff1a;大多…

vue打包压缩

参考 https://www.cnblogs.com/lafitewu/p/8309305.html 注意:方法1和方法2不能同时用 取消打包的map config/index.js的productionSourceMap设置为false 抽取js 将部分常用又比较大的组件直接抽取为一个单独的js 打开webpack.base.conf.js,在module.exports.entry中添加想…

docker 搭建本地Chat GPT

要在CentOS7上安装Docker&#xff0c;您可以按照以下步骤进行操作&#xff1a; 1、更新系统包列表 sudo yum update2、安装Docker存储库的必要软件包 sudo yum install -y yum-utils device-mapper-persistent-data lvm23、添加Docker存储库 sudo yum-config-manager --add…