window安装elasticsearch

elasticsearch简单理解:

index: es里的index相当于一个数据库。

type: 相当于数据库里的一个表。

id: 唯一,相当于主键。

node:节点是es实例,一台机器可以运行多个实例,但是同一台机器上的实例在配置文件中要确保http和tcp端口不同。

cluster:代表一个集群,集群中有多个节点,其中有一个会被选为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的。

shards:代表索引分片,es可以把一个完整的索引分成多个分片,这样的好处是可以把一个大的索引拆分成多个,分布到不同的节点上,构成分布式搜索。分片的数量只能在索引创建前指定,并且索引创建后不能更改。

replicas:代表索引副本,es可以设置多个索引的副本,副本的作用一是提高系统的容错性,当个某个节点某个分片损坏或丢失时可以从副本中恢复。二是提高es的查询效率,es会自动对搜索请求进行负载均衡。

环境 系统window,后台php,数据库mysql

  1. elasticsearch 到官网下载解压即可,
    D:\elasticsearch-6.2.4\bin\elasticsearch.bat 启动,在localhost:9200 可以查看是否启动成功

  2. kibana ,是elasticsearch的图形管理工具的网站,到官网下载解压即可
    启动后,http://localhost:5601可以查看是否启动成功

  3. logstash ,是数据转换工具,用来将数据导入elasticsearch
    创建logstash.default.conf文件,

    1
    2
    3
    4
    5
    6
    7
    8
    9
    input {
    stdin{
    }
    }
    output {

    stdout{
    }
    }

    启动
    logstash -f logstash_default.conf

  4. 安装logstash-input-jdbc
    参考了https://blog.csdn.net/yowrhihoil/article/details/79568743

    mysql-connector-java.jar 自己下载

    重新配置logstash.default.conf文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    input {
    jdbc {
    jdbc_driver_library => "D:\logstash-6.2.4\bin\lib\mysql-connector-java-5.1.44-bin.jar"
    jdbc_driver_class => "com.mysql.jdbc.Driver"
    jdbc_connection_string => "jdbc:mysql://localhost:3306/app"
    jdbc_user => "root"
    jdbc_password => "root"
    schedule => "*/2 * * * *"
    use_column_value => false
    tracking_column => "update_date"
    statement_filepath => "D:/logstash-6.2.4/bin/lib/jdbc.sql"
    }
    }
    output {
    elasticsearch {
    hosts => ["127.0.0.1:9200"]
    index => "app"
    }
    stdout{
    }
    }

    sql文件就随便写条查询语句就行

    启动logstash,ok

  5. composer require elasticsearch/elasticsearch

    php 调用 elasticsearch

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $hosts = [
    [
    'host' => 'localhost'
    ]
    ];
    $elastic = Elasticsearch\ClientBuilder::create()->setHosts($hosts)->build();
    $paras = [
    "index"=>"index",
    "type"=>"type"
    ];
    $res = $elastic->search($paras);

linux 环境下安装注意文件权限,端口,ip地址,内存等