es入门教程

因为项目可能会用到es保存一些非结构化的数据,并从中检索数据。对es调研了一下

从官网:https://www.elastic.co/downloads下载,解压即安装。

进入解压目录,执行bin目录下elasticsearch命令即启动。启动后,可以在终端执行命令,校验是否启动成功

curl localhost:9200
{
  "name" : "atntrTf",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "tf9250XhQ6ee4h7YI11anA",
  "version" : {
    "number" : "5.5.1",
    "build_hash" : "19c13d0",
    "build_date" : "2017-07-18T20:44:24.823Z",
    "build_snapshot" : false,
    "lucene_version" : "6.6.0"
  },
  "tagline" : "You Know, for Search"
}

有类似以上输出,说明es启动成功。es是java开发的,需要安装java运行环境。jdk或者jre

es有索引、类型、文档这些概念。依次类似对应关系型数据库的 数据库、表、记录。其实就是一个逻辑空间

创建索引命令

curl -X PUT 'localhost:9200/weather'

es提供了restful接口,-X表示http方法。具体可以了解下curl命令参数

新增一个文档

$ curl -X PUT 'localhost:9200/accounts/person/1' -d '
{
  "user": "张三",
  "title": "工程师",
  "desc": "数据库管理"
}' 

accounts为索引,person为type类型,1文档id  -d后面跟提交的数据,一般为json格式

当然还有其他增删改查等restful接口。

总结

1. es是在lucene上封装了一层

2. es类似一个分布式存储和检索系统

3. 数据通过分片存放到不同的分片上,每个分片可以有0到多个副本

4. ELK为es, lagstash类似flume一个agent收集日志信息, k为kibana一个web管理界面。这三个都安装过,没事可以玩一下

5. es提供了java客户端以及rest客户端,具体有什么区别待研究

6. es客户端有可以在集群中扮演node角色的,不存数据。也有通过客户端直接连集群机器的,不属于集群

7. 节点类型有三个,主节点,数据节点, 客户端节点

个人感觉 doc --> 分词(ik等分词插件) --> 倒排  --> 检索

参考:http://www.ruanyifeng.com/blog/2017/08/elasticsearch.html

阮一峰的博客写的很赞

es感觉还是很强大,es权威指南还没翻译完,开始卖了可以买一本看下,感觉写的不错

原文地址:https://www.cnblogs.com/luckygxf/p/9446586.html