ES学习笔记

Elasticsearch安装

可以到官网下载很快的,懒的同学可以使用下面的传送门
es2.4.2 安装包 :https://pan.baidu.com/s/1c2hM6J2 lduh
es6.0.1 安装包 :https://pan.baidu.com/s/1dFIYshV fq70

本人习惯把相关东西都解压到/usr/local/文件夹下:

#tar zxvf es下载路径 es安装路径 
#例如
tar zxvf ~/Downloads/elasticsearch2.4.2.tar.gz /usr/local/

cd /usr/local
mv elasticsearch2.4.2 elasticsearch

下一步添加环境变量方便启动elasticsearch

sudo vim /etc/profile
#添加如下行,并修改PATH变量
export ES_HOME=/usr/local/elasticsearch
export PATH=$PATH:$ES_HOME/bin
#保存
source /etc/profile

安装elasticsearch插件让我们可以在浏览器访问:

cd $ES_HOME/bin
plugin -install mobz/elasticsearch-head 
#启动es
elasticsearch 

然后就可以在浏览器打开 localhost:9200/_plugin/head 来查看es相关信息啦

es插件页面展示


在学习过程中遇到很多大坑,明明照着网上做,为啥就是跟人家的不一样!!!苍天啊,大地啊,又特么浪费好长时间,感觉学习就是不断填坑的过程,首先,先说一下在网上看教程的时候要注意对方用的版本版本版本!ES2和ES6有很大的改动。

ES基础知识

索引(index)

索引可以看成是一个具有相似特征的元素集合,举个例子:

fruits -> {apple,banana,cherry,······}

这个fruits就是一个索引,就好比说在千千万万的数据中,我要查和水果有关的东西,那我只需要在fruits这个索引下查询相关信息而不需要查询整个数据集。

需要注意的是索引的名字必须为小写字母,小写字母,小写字母,千万不要手欠使用驼峰写法,血的教训。

类型(type)

类型,我的理解就是将一块大饼分成小饼的操作,在之前的例子中对应的就是我们的水果的名字,如 apple,banana,cherry。就是把水果这个再细分。

不过这个“类型“将会在7.0版本中完全移除,在6.0中已经被废弃了。官方解释的原因大概如下:

首先我们先创建一个索引

curl -XPUT localhost:9200/fruits

新建一个名为apple的类型(type),它包含一个字段 “price”类型为string

curl -XPUT localhost:9200/fruits/_mapping/apple  -d '{
     "apple":{
         "properties":{
             "price":{
                 "type":"string"
             }
          }
      }
 }'

再次新建一个名为cherry的类型(type),它包含一个字段 “price”类型为date

curl -XPUT localhost:9200/fruits/_mapping/cherry  -d '{
     "cherry":{
         "properties":{
             "price":{
                 "type":"date"
             }
          }
      }
 }'

我们会得到一个exception如下:

{
"error":
    {"root_cause":
    [{
        "type":"illegal_argument_exception",
        "reason":"mapper [price] of different type, current_type [string], merged_type[date]"
    }],
    "type":"illegal_argument_exception",
    },
"status":400
}

大概的意思就是你都给我定义了一个string类型了,又给我改成date类型干毛!然后es不干了,罢工!!!(让我想起了法国人。。。),究其原因是因为apple的price字段和cherry的price字段存在完全相同的映射中所以他们的类型不一样就会引起错误!!所以我们在将来的7.0版本中将完全移除TYPE这个东西。
同时,在老版本使用中也要注意这个问题,相同索引中不同类型的同名字段是存在同一个映射中,所以要非常小心。

文档(document)

文档的理解就数据,我们存的东西,一条文档就是一条数据!

分片&副本(shards&replicas)

就是把一个很大的数据分成很多个小部分,每个部分就是一个分片(shard),每一个shard都可以完成查询任务,默认数量为5,在索引创建以后就不能修改这个数量了,所以要在创建的时候想好分片数量,副本就是对每个分片的复制,作为冗余数据存储,保证在单点故障的情况下,ES可以不丢失数据并且正常工作。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值