1. 安装java jdk

    因为ES是基于JAVA的,需要先安装java环境,具体的不太清楚,不用全部都装,一个jdk就可以了(应该是java开发工具包)
    下载地址,好像需要登陆
    或者 链接:https://pan.baidu.[com](https://so.csdn.net/so/search?q=com&spm=1001.2101.3001.7020)/s/1CxY6Xsl7yEaSyHYWUECm3Q 提取码:on4e
    选择版本跟配置,下载安装就可以了

    1. 配置java环境变量

    新建系统环境变量 JAVA_HOME 变量值为安装地址 C:\Program Files\Java\jdk-13.0.1
    编辑Pash, 在里面添加 %JAVA_HOME%\bin

    1. 下载 ES安装包

    下载地址
    或者 链接:https://pan.baidu.com/s/1J-zNhtG0y7Ico70FnuzYZg 提取码:rxt5
    下载完之后,就是已经安装好的了,直接双击文件内 bin\elasticsearch.bat 就可以了,也可以用命令行进去,执行文件,等一会执行一大堆东西 有 started 基本就成功了 最后都是 INFO
    访问 http://127.0.0.1:9200/?pretty 就可以看到ES的信息,已经启动了
    image.png

    1. 下载管理ES的可视化插件,elasticsearch-head(浏览器扩展) 另一款 kibana 也是可视化插件,

    GIt地址,下载zip包
    或者 链接:https://pan.baidu.com/s/1570Y84yCeRbpcgbJydxP3g 提取码:9280
    下载之后,解压缩, \crx\ 文件内的 es-head.crx 文件就是扩展程序,
    直接将文件丢到谷歌浏览器的扩展中心内,或者指向该文件,
    如果提示扩展不行,或者报错,将 es-head.crx 文件解压缩(里面一大堆文件)到当前文件夹,然后将crx 文件丢进去,或者指向就行了
    image.pngimage.png
    当打开 http://127.0.0.1:9200/?pretty 的时候,点击扩展,就会进入可视化界面
    image.pngimage.png

    1. 还有什么安装什么node的 应该不用,咱们就是单机,复制一下

    如无node须先安装下node
    ②解压zip包
    我的解压路径:D:\elasticsearch-7.2.0\elasticsearch-head-master
    ③安装pathomjs
    在dos窗口进入到head路径下,使用命令npm install安装pathomjs
    ④启用服务
    使用命令npm start启用服务

    修改elasticsearch.yml文件
    增加
    http.cors.enabled: true
    http.cors.allow-origin: “*”
    #设置可以访问的ip 这里全部设置通过

    1. ik 分词器

    注意IK分词器,需要和ES引擎的版本对应上,不然会报错,(目前还没有用分词器呢)
    git地址
    链接:https://pan.baidu.com/s/1ItFzLKFPY9SP1P4dR3WrIQ 提取码:dvzf
    或者使用命令,我也没试过
    安装中文分词插件ik (安装完需要重启es) elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.5.4/elasticsearch-analysis-ik-6.5.4.zip
    最终会把安装包解压到ES的\plugins\IK 目录,IK目录应该需要新建

    1. 至于什么mysql同步ES的同步脚本 logstash,没用过,复制一份

    1、下载logstash
    地址: https://www.elastic.co/cn/downloads/logstash

    链接:https://pan.baidu.com/s/1QD9_agxRpL2Ta7Se0E68Bw
    提取码:0gx0
    2、下载: mysql-connector-java.jar
    地址:https://dev.mysql.com/downloads/connector/j/5.1.html

    链接:https://pan.baidu.com/s/1luDNpU7fjnqmCo-F6WSj_Q
    提取码:srny
    在logstash目录下创建一个mysql目录,把驱动文件放进去。
    2、修改配置文件
    在安装目录下 config 里创建个 mysqltoes.conf
    在文件中加入以下内容:

    1. input {
    2. # 多张表的同步只需要设置多个jdbc的模块就行了
    3. jdbc {
    4. # mysql 数据库链接,shop为数据库名
    5. jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/cesi?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC"
    6. # 用户名和密码
    7. jdbc_user => "root"
    8. jdbc_password => "root"
    9. # 驱动
    10. jdbc_driver_library => "I:/logstash-7.5.1/mysql/mysql-connector-java-5.1.48.jar"
    11. # 驱动类名
    12. jdbc_driver_class => "com.mysql.jdbc.Driver"
    13. #是否分页
    14. jdbc_paging_enabled => "true"
    15. jdbc_page_size => "50000"
    16. #直接执行sql语句
    17. statement =>"select * from articles"
    18. # 执行的sql 文件路径+名称
    19. # statement_filepath => "/hw/elasticsearch/logstash-6.2.4/bin/test.sql"
    20. #设置监听间隔 各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新 每2秒更新
    21. schedule => "*/2 * * * * *"
    22. # 索引类型
    23. #type => "jdbc"
    24. }
    25. }
    26. output {
    27. elasticsearch {
    28. #es的ip和端口
    29. hosts => ["http://127.0.0.1:9200"]
    30. #ES索引名称(自己定义的)
    31. index => "blog"
    32. #文档类型
    33. document_type => "log"
    34. #设置数据的id为数据库中的字段
    35. document_id => "%{id}"
    36. }
    37. stdout {
    38. codec => json_lines
    39. }
    40. }

    配置好后,打开cmd窗口,敲入启动命令:bin\logstash.bat -f config\mysqltoes.conf
    自此ES就安装好了,剩下的就是PHP的使用了
    php客户端
    需要几个条件,

    • PHP 7.1.0 或更高版本
    • composer
    • ext-curl : PHP 的 Libcurl 扩展(其实就是url了)
    • 原生 JSON 扩展 ( ext-json) 1.3.7 或更高版本

    使用 composer 安装 在根目录新建 composer.json 文件,文件内写入

    {
        "require": {
            "elasticsearch/elasticsearch": "~7.0"
        }
    }
    

    然后执行后面两条命令,下载ES的扩展类

    curl -s http://getcomposer.org/installer | php
    php composer.phar install
    

    会在本家下载ES扩展包
    image.png
    后面就可以执行ES的操作了

    <?php
    require 'vendor/autoload.php';
    
    use Elasticsearch\ClientBuilder;
    //实例化操作类
    $client = ClientBuilder::create()
    //    ->setHosts(['192.168.110.1:9200']) //手动确定地址
        ->build();
    
    $params = [
        'index' => 'my_index',//索引名/库名#index的名字不能是大写和下划线开头
        'body' => [
            'settings' => [
                'number_of_shards' => 1,// 分片数
                'number_of_replicas' => 0// 副本数
            ]
        ]
    ];
    //新建index,ES数据库
    $response = $client->indices()->create($params);
    print_r($response);
    
    $params = [
        'index' => 'my_index',
        'id'    => 'my_id',
        'body'  => ['testField' => 'abc']
    ];
    //新建索引,文档关系映射
    $response = $client->index($params);
    print_r($response);
    
    $params = [
        'index' => 'my_index',
        'id'    => 'my_id'
    ];
    //查询文档,以id为条件
    $response = $client->get($params);
    print_r($response);
    
    $params = [
        'index' => 'my_index',
        'body'  => [
            'query' => [
                'match' => [
                    'testField' => 'abc'
                ]
            ]
        ]
    ];
    //查询文档,以搜索条件
    $response = $client->search($params);
    print_r($response);