ElasticSearch

一、安装

Mac 安装方法:

brew install elasticsearch

Linux 的安装方法参见:elasticsearch: 权威指南

安装完成后,运行elasticsearch

elasticsearch

会看到一堆的输出,如果最后看到:

[2019-09-04T10:12:12,884][INFO ][o.e.n.Node               ] [E2j6wyc] started

说明,elasticsearch 正常运行了。elasticsearch 默认会在 9200 端口上运行,我们打开浏览器访问http://localhost:9200/ 就可以看到类似内容:

{
   
    "name": "E2j6wyc",
    "cluster_name": "elasticsearch_didi",
    "cluster_uuid": "mQg77w-QQmGH07O6HXrFUw",
    "version": {
   
        "number": "6.8.2",
        "build_flavor": "oss",
        "build_type": "tar",
        "build_hash": "b506955",
        "build_date": "2019-07-24T15:24:41.545295Z",
        "build_snapshot": false,
        "lucene_version": "7.7.0",
        "minimum_wire_compatibility_version": "5.6.0",
        "minimum_index_compatibility_version": "5.0.0"
    },
    "tagline": "You Know, for Search"
}

如果看到这个内容,就说明 elasticsearch 安装并启动成功了,这里显示我的 elasticsearch 版本是 6.8.2 版本,版本很重要,以后安装一些插件都要做到版本对应才可以。

二、几个重要概念
1、索引(index)

索引(index)就是一个有相似特征的文档的集合,es把数据存储到一个或多个索引中。通常index是一个比较大的分类,比如按照不同的客户,或者不同的产品,或者不同的时间戳。

通常构造index的时候需要考虑好分类的粒度,因为如果后面想要批量删除的话基本单位是索引。如果构造的index分类粒度太大,那么批量删除的时候将会变得很麻烦。

如果是采用ES来搭建实时日志搜索平台,那么通常建议index按照时间戳来进行命名,因为这样的话可以设置超过几天的日志全部删除,清理磁盘空间。

2、文档(document)

文档(document)是es中存储数据的实体,它是可以被索引的基本单元。每一个文档都以json格式表示,每一个索引可以任意多个文档。

简单来说就是**文档其实就是真实的每一条的存储的数据,比如每条以json格式表示的日志。**每一个文档物理上存在一个索引中,但文档必须有一个文档类型(type)。

3、类型(type)

类型(type)是索引之下的逻辑分区,相对index更细的分类粒度。比如如果index以日期命名,那么type可以以具体的客户命名。然后每一个客户下面,又有很多的文档实体。

4、id

每一个文档实体,ES会自动为其创建一个唯一的id,比如**“AV8tQS119lFHJS7Mv7v8”**。

这里不太重要不需要关注,但有一点需要注意,日志的字段不能有id这个字段,否则会跟自动创建的id冲突,导致可能插入数据失败。

5、NodeCluster

elasticsearch 本质上是一个分布式数据库,允许多台服务器协同工作,每台服务器可以运行多个 elasticsearch 实例。

单个 elasticsearch 实例称为一个节点(Node)。一组节点构成一个集群(Cluster)。

三、Python3 操作 es 实战

理解了上面的几个概念,然后就可以开始真正使用es了。其实可以简单的把es类比为一个数据库,可以执行插入,查询,更新,删除等操作。

1、安装 espython 库:
pip3 install elasticsearch

安装完成后,进行一下简单的测试:

import requests
res = requests.get('http://127.0.0.1:9200')
print(res.json())

看到如下输出,说明elasticsearch按住成功,且正常工作。

{
   'name': 'E2j6wyc', 'cluster_name': 'elasticsearch_didi', 'cluster_uuid': 'mQg77w-QQmGH07O6HXrFUw', 'version': {
   'number': '6.8.2', 'build_flavor': 'oss', 'build_type': 'tar', 'build_hash': 'b506955', 'build_date': '2019-07-24T15:24:41.545295Z', 'build_snapshot': False, 'lucene_version': '7.7.0', 'minimum_wire_compatibility_version': '5.6.0', 'minimum_index_compatibility_version': '5.0.0'}, 'tagline': 'You Know, for Search'}
2、使用

(1)创建 ES 实例

import elasticsearch
es = elasticsearch.Elasticsearch([{
   'host': '127.0.01', 'port': 9200}])

(2)创建 index

from elasticsearch import Elasticsearch
 
es = Elasticsearch([{
   'host': '127.0.01', 'port': 9200}])
result = es.indices.create(index='news', ignore=400)  # 创建名为 news 的 index
print(result)

如果创建成功,会返回如下结果:

{
   'acknowledged': True, 'shards_acknowledged': True, 'index': 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值