Elasticsearch入门学习

kibana


一、安装

安装docker
docker命令安装与启动elasticsearch和kibana集成

docker pull nshou/elasticsearch-kibana
docker run -d -p 9200:9200 -p 9300:9300 -p 5601:5601 --name eskibana  nshou/elasticsearch-kibana

进入容器修改kibana为中文

docker exec -it e4287ef6a10f /bin/bash
#容器中代码
cd /home/elasticsearch/kibana-7.12.1-linux-x86_64/config/
vim kibana.yml
#最后一行加上这个      i18n.locale: "zh-CN"

验证ES:
打开浏览器,输入IP:端口,比如我的:http://127.0.0.1:9200/

在这里插入图片描述

验证Kibana:
打开浏览器,输入Kibana的IP:端口,比如我的:http://127.0.0.1:5601/

在这里插入图片描述

ElasticSearch Head,它相当于是ES的图形化界面,这个更简单,它是一个浏览器的扩展程序,直接在chrome浏览器扩展程序里下载安装即可

在这里插入图片描述

二、基础使用

1、介绍

ESMysqL
字段
文档一行数据
类型(已废弃)
索引数据库

分片

  1. 通过分片技术,咱们可以水平拆分数据量,同时它还支持跨碎片(可能在多个节点上)分布和并行操作,从而提高性能/吞吐量;
  2. ES可以完全自动管理分片的分配和文档的聚合来完成搜索请求,并且对用户完全透明;
  3. 主分片数在索引创建时指定,后续只能通过Reindex修改,但是较麻烦,一般不进行修改
  4. 在创建索引时,只需要咱们定义所需的碎片数量就可以了,其实每个分片都可以看作是一个完全功能性和独立的索引,可以托管在集群中的任何节点上。

副本分片

  1. 当分片或者节点发生故障时提供高可用性。因此,需要注意的是,副本分片永远不会分配到复制它的原始或主分片所在的节点上;
  2. 可以提高扩展搜索量和吞吐量,因为ES允许在所有副本上并行执行搜索
  3. 认情况下,ES中的每个索引都分配5个主分片,并为每个主分片分配1个副本分片。主分片在创建索引时指定,不能修改,副本分片可以修改

2、创建一个空索引(库)

如下代码,咱们创建了一个0副本2分片的ropledata索引,然后咱们可以在Elasticsearch Head里刷新一下,并查看索引的信息:

PUT /ropledata
{
  "settings": { 
    "number_of_shards": "2", 
    "number_of_replicas": "0"
  } 
}

在这里插入图片描述

在这里插入图片描述

3、修改副本(库)

咱们如果对刚才创建的索引副本数量不满意,可以进行修改,注意:分片不允许修改

PUT ropledata/_settings 
{ 
  "number_of_replicas" : "2" 
}

在这里插入图片描述

4、删除索引(库)

当这个索引不想用了,可以进行删除,执行如下命令即可,执行成功后,刷新ElasticSearch Head可以看到刚才创建的ropledata索引消失了:

DELETE /ropledata

在这里插入图片描述

5、数据插入数据

插入数据的时候可以指定id,如果不指定的话,ES会自动帮我们生成。我们以指定id为例,如下代码是我们创建了一个101的文档,创建成功后,可以在Elasticsearch Head的数据浏览模块里看到这些数据,代码及演示如下:

//指定id 
POST /ropledata/_doc/mydb1 
{
  "id":1,
  "name":"渊哥",
  "page":"www.baidu.com",
  "say":"测试罢了" 
}

在这里插入图片描述

6、局部更新

POST /ropledata/_update/mydb1
{
  "doc":
  {
    "say":"奥力给"
  } 
}

这时候我们可以多次去执行上面的局部更新代码,会发现除了第一次执行,后续不管又执行了多少次,_version都不再变化!

在这里插入图片描述

7、查询数据

GET /ropledata/_doc/mydb1

在这里插入图片描述

8、删除数据

比如我们想把ropledata索引下的id为mydb1的文档删除,可以使用如下命令:

DELETE /ropledata/_doc/mydb1

在这里插入图片描述


查询或者删除时候用到的ID是创建文档时候指定或者ES自动生成的那个id,而不是文档里面的那个叫id 字段!文档里面的文档字段是可以没有id 的。

相关文章

TCP/IP套接字登录方法是MySQL在一切服务平台都提供的一种登录...
easy-rule规则引擎最佳落地
Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分...
最近壹哥的一个学生,在利用spring-data-elasticsearch访问E...
java 操作elasticsearch详细总结
原文链接:http://www.ruanyifeng.com/blog/2017/08/elastic...