PHP+Elasticsearch学习

Elasticsearch学习

1. 安装客户端

下载链接

  1. 我用的是win10所以选windows
    在这里插入图片描述

  2. 解压文件并进入到bin目录, 打开elasticsearch.bat文件
    在这里插入图片描述

  3. 终端上面中文会有乱码,解决方式 在./config/jvm.options配置文件中设置字符集格式,加入

-Dfile.encoding=GBK

在这里插入图片描述
接下来关闭ssl认证
ES/config/elasticsearch.yml 文件中把 xpack.security.http.ssl:enabled 设置成 false 即可

# Enable encryption for HTTP API client connections, such as Kibana, Logstash, and Agents
xpack.security.http.ssl:
  enabled: false
  keystore.path: certs/http.p12

2. php扩展文件

  1. 打开composer.json 文件,在require内追加"elasticsearch/elasticsearch": "~7.0"
  2. cmoposer.json的同级目录执行 composer install 进行安装
  3. 安装成功
    在这里插入图片描述

3. 开始根据需求使用代码了,引入命名空间

<>php
use Elasticsearch\ClientBuilder;

参考文章

索引常用的方法

$params = [
    'index' => ['my_index']
];
$response = $client->indices()->create($params); // 创建索引
$response = $client->indices()->delete($params); // 删除索引
$response = $client->indices()->putSettings($params); // 修改索引
$response = $client->indices()->getSettings($params); // 获取索引

详细请见文件:
在这里插入图片描述
文档常用的方法

$response = $client->get($params);
$response = $client->update($params);
$response = $client->delete($params);
$results = $client->search($params);// 搜索方法

使用工具查看可视化数据 (1)

  1. 安装nodeJS(自行百度)
  2. 安装grunt配置 npm install -g grunt-cli
  3. 下载应用文件
    1. github https://github.com/mobz/elasticsearch-head
    2. codechina https://codechina.csdn.net/mirrors/mobz/elasticsearch-head?utm_source=csdn_github_accelerator 更快一些
  4. head工具的根目录执行npm install 安装依赖
  5. 设置elasticsearch访问方式
    1. 打开elasticsearch的根目录/config/elasticsearch.yml
    2. 末尾添加

http.cors.enabled: true
http.cors.allow-origin: “*”

http.cors.enabled 开启跨域访问支持,默认为false
http.cors.allow-origin 跨域访问允许的域名地址,我直接用的全部,线上尽量不要用

  1. 回到bin目录打开elasticsearch.bat
  2. 去工具的根目录执行npm run start
    在这里插入图片描述

安装完成
在这里插入图片描述

使用工具查看可视化数据 (2:官方)

  1. 点击下载kibana

  2. 解压后先运行其他文件,最后运行bin/kibana.bat
    在这里插入图片描述

  3. 键入链接 打开网站
    在这里插入图片描述

配置文件

server.port: 5601
server.host: "localhost"
server.name: "liuchostname"
elasticsearch.hosts: ["http://localhost:9200"]
i18n.locale: "zh-CN"

– 2021-7-19 16:10:44

mysql和es7数据同步

数据表尽量设置 updatetime,createtime,deletetime 使用时间排序 来对es7的数据进行创建修改删除

  1. 安装logstash-7.13.3
  2. 下载 mysql-connector-java-8.0.25.jar 并且放入目录\logstash-7.13.3\logstash-core\lib\jars
  3. 编写同步的代码 在config内创建 mysql.conf
 # logstash主要是三大块,input:数据源,filter:过滤器对数据进行过滤,output:输出;这三块都有很多插件方便使用
input {
    stdin {}
    jdbc{
        #  建立连接的方式           通过jdbc:数据库:ip地址: 端口号: 数据库名称
        jdbc_connection_string => "jdbc:mysql://localhost:3306/serach?userSSL=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai"

        # 数据库账号
        jdbc_user => "serach"

        # 数据库密码
        jdbc_password => "serach"

        # 数据库链接驱动
        jdbc_driver_library => "D:/***/***/***/logstash-7.13.3/logstash-core/lib/jars/mysql-connector-java-8.0.25.jar"

        # 驱动类名  [com.mysql.jdbc.Driver]这个类名太老了, 下面是新的
        jdbc_driver_class => "com.mysql.cj.jdbc.Driver"

        jdbc_paging_enabled => "true"
        jdbc_page_size => "50000"

        #记录最后一次运行的结果,用于[增量更新]
        # record_last_run => true

        #[增量更新]上面运行结果的保存位置
        #last_run_metadata_path => "/data/jdbc-position.txt"

        # 全量同步数据
        statement => "select * from user limit 6 "
        # statement => "select * from user where id > :sql_last_value" [增量更新]同步数据

        # 设置监听间隔  各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新
        schedule => "* * * * *"
    }
}
  
output {
    stdout {
        codec => json_lines
    }
    elasticsearch {
        hosts => "http://localhost:9200"
        index => "table"
        document_id => "%{id}"
    }
}

  1. 切换进入到 \logstash-7.13.3\bin 执行cmd命令
logstash.bat -f D:\***\***\***\logstash-7.13.3\config\mysql.conf

完工

参考链接: https://blog.51cto.com/u_15065305/2945264?xiangguantuijian&01

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苏范霖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值