elasticsearch + Kibana 安装学习之路, 5.6.4 和 6.4.2 的区别

同一个索引下不同类型 
ES6.4.2不支持定义不同类型  (类型相当于表的概念)  
ES5.6.4支持

5.*之后,把string字段设置为了过时字段,引入text,keyword字段

这两个字段都可以存储字符串使用,但建立索引和搜索的时候是不太一样的

keyword:存储数据时候,不会分词建立索引

text:存储数据时候,会自动分词,并生成索引

---------------------------

elasticsearch7.0有哪些重大改进
1、彻底废弃多type支持,包括api层面,之前版本可在一个索引库下创建多个type。

2、彻底废弃_all字段支持,为提升性能默认不再支持全文检索,即7.0之后版本进行该项配置会报错。

3、新增应用程序主动监测功能,搭配对应的kibana版本,用户可监测应用服务的健康状态,并在出现问题后及时发出通知。

4、取消query结果中hits count的支持(聚合查询除外),使得查询性能大幅提升(3x-7x faster)。这意味着,每次查询后将不能得到精确的结果集数量。

5、新增intervals query ,用户可设置多字符串在文档中出现的先后顺序进行检索。

6、新增script_core ,通过此操作用户可以精确控制返回结果的score分值。

7、优化集群协调子系统,缩减配置项提升稳定性。

8、新增 alias、date_nanos、features、vector等数据类型。

9、7.0自带java环境,所以我们在安装es时不再需要单独下载和配置java_home。

10、7.0将不会再有OOM的情况,JVM引入了新的circuit breaker(熔断)机制,当查询或聚合的数据量超出单机处理的最大内存限制时会被截断,并抛出异常(有点类似clickhouse)。

es7.0新增数据类型:alias、date_nanos、features、vector

alias:并不实际存在,而是对已有字段的一种别名映射,搜索该字段与搜索实际字段返回的内容没有本质的区别。
date_nanos:另一种时间类型,可精确到纳秒,用法类似date。
features:用来存储特征向量,数据不能为0和负数,查询时只能使用rank_feature query,该字段主要为支持后续机器学习相关功能做准备。
vector:存储特征数组,支持稀疏与稠密向量存储,该字段主要为支持后续机器学习相关功能做准备。

------------------------------------------------------------------

如果没有安装JAVA,就要运行:yum install java*
简单配置vi /etc/profile 在尾部加上

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-0.el7_5.x86_64
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

使其生效:source /etc/profile

-----------------------------------------

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.4.rpm
yum install -y elasticsearch-5.6.4.rpm
wget https://artifacts.elastic.co/downloads/kibana/kibana-5.6.4-x86_64.rpm
yum install -y kibana-5.6.4-x86_64.rpm

安装完成后,创建ES的数据目录:

mkdir /mydata/esdata
chown -R elasticsearch:elasticsearch /mydata/esdata

修改ES配置文件:

vi /etc/elasticsearch/elasticsearch.yml

path.data: /mydata/esdata
path.logs: /mydata/esdata

network.host: 127.0.0.1
http.port: 9200

vi /etc/kibana/kibana.yml 
server.port: 5601                                   //监听端口
server.host: "127.0.0.1"                         //监听IP地址
elasticsearch.url: "http://127.0.0.1:9200"

修改好之后,激活服务启动:
systemctl daemon-reload

systemctl enable elasticsearch.service

systemctl enable kibana

systemctl start elasticsearch.service

systemctl start kibana
------------------------------------------------------------------

常见查询语句:

#完整搜索
GET /myindexname/_search
{
  "query": {
    "match": { 
      "username": "admin"
    }
  }
}

#全文搜索
GET /myindexname/test/_search
{
  "query": {
    "match_phrase": { 
      "text": "祖国"
    }
  }
}


#查看有哪些索引
GET /_cat/indices?v

GET /myindexname/_mapping


#查看有哪些别名
GET /_cat/aliases?v

#创建索引,设置动态自动识别新增字段
PUT myindexname
{
  "mappings": {
    "test": {
     "dynamic":       true , 
     "numeric_detection":true, 
      "properties": {
        "name": { "type": "text" },
        "data": { "type": "text" }
      }
    }
  }
}

新增类型:

PUT /myindexname/user/_mapping
{
      "properties": {
        "name": { "type": "text" },
        "data": { "type": "text" }
      }
}

多条进查询

GET /file_notify/_search
{
  "query": {
  "bool": {
      "should": [
        { "match": { "uuid":  "AAAAAAAA-AAAA-AAAA-AAAA-4A0F873003BB" }},
        { "match": { "name": "117"   }}
      ]
    }
  }
}

删除 file_notify 库 里 mailbox 表 所有数据
POST /file_notify/mailbox/_delete_by_query?conflicts=proceed
{
  "query": {
    "match_all": {}
  }
}

通配符与正则表达式查询
GET /file_notify/mailbox/_search
{
    "query": {
        "wildcard": {
            "uuid": "*4A0F873003BB" 
        }
    }
}

GET /my_index/address/_search
{
    "query": {
        "regexp": {
            "postcode": "W[0-9].+" 
        }
    }
}
参考文档:https://www.elastic.co/guide/cn/elasticsearch/guide/current/_wildcard_and_regexp_queries.html

https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-params.html

注意事项:es支持的日期格式,可以查看官方网页:

https://www.elastic.co/guide/en/elasticsearch/reference/current/date.html

https://www.elastic.co/guide/en/elasticsearch/reference/5.6/mapping-date-format.html

PUT my_index
{
  "mappings": {
    "_doc": {
      "properties": {
        "date": {
          "type":   "date",
          "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis",
          "null_value": "NULL",
          "ignore_malformed": true
        }
      }
    }
  }
}

为了避免在同步数据中出错,在建mappings的时候可以加入以下两个参数:

null_value 接受其中一个配置的日期值format作为替换任何显式null值的字段。默认为null,表示该字段被视为缺失。

ignore_malformed 如果true,错误的字段被忽略。如果false(默认),格式错误的字段会抛出异常并拒绝整个文档。

还有一个在分页查询时,最大返回结果为10000条,需要修改max_result_window参数,最大支持20亿:

PUT /my_index/_settings
{
    "index": {
        "max_result_window": "200000000"
    }
}

========================================

nginx 配置反向代理,增加 kibana 安全用户名密码登陆。

htpasswd 文件格式:用户名:密码

密码生成PHP方法:

<?php
// 密码明文 
$password = 'youpassword'; 
// 对密码进行加密 
$password = crypt($password, base64_encode($password)); 
// 获得加密后的密码 
echo $password; 

?>

 

nginx 配置文件,其中SSL证书和KEY需要注意改成自己域名的。

    server
    {
        listen 443;
        ssl on;
        ssl_certificate  /usr/local/nginx/1_bundle.crt;
        ssl_certificate_key  /usr/local/nginx/2_kibana.key;

        server_name youkibana.com;
        index index.html index.htm index.php default.html default.htm default.php;

access_log off;
proxy_connect_timeout 8;
proxy_read_timeout 60;
proxy_send_timeout 8;
proxy_buffer_size 16k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;


    location / {
            auth_basic "Yts Kibana Monitor Center";
            auth_basic_user_file /usr/local/nginx/html/htpasswd;
            proxy_pass http://127.0.0.1:5601/;
            proxy_redirect  default;
            proxy_set_header Host 127.0.0.1;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值