python操作Elasticsearc

1、简介

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

单个Elasticsearch实例称为一个节点Node,一组节点构成一个集群Cluster

Index

Elasticsearch会索引所有字段,经处理后写入一个反向索引(Inverted Index),查找数据的时候,直接查找该索引。所以,Elasticsearch数据管理的顶层单位就叫做index(索引),其实就相当于MySQL、MongoDB等里面的数据库的概念

Document

Index里面单条的记录称为Document(文档),许多条Document构成了一个Index。Document使用JSON格式表示,同一个Index里面的Document,不要求有相同的结构(schema),但是最好保持相同,这样有利于提高搜索效率

Type

Document 可以分组,比如 weather 这个 Index 里面,可以按城市分组(北京和上海),也可以按气候分组(晴天和雨天)。这种分组就叫做 Type,它是虚拟的逻辑分组,用来过滤 Document,类似 MySQL 中的数据表,MongoDB 中的 Collection。

不同的 Type 应该有相似的结构(Schema),举例来说,id 字段不能在这个组是字符串,在另一个组是数值。这是与关系型数据库的表的一个区别。性质完全不同的数据(比如 products 和 logs)应该存成两个 Index,而不是一个 Index 里面的两个 Type(虽然可以做到)。

根据规划,Elastic 6.x 版只允许每个 Index 包含一个 Type,7.x 版将会彻底移除 Type。

Fields

即字段,每个 Document 都类似一个 JSON 结构,它包含了许多字段,每个字段都有其对应的值,多个字段组成了一个 Document,其实就可以类比 MySQL 数据表中的字段。

在 Elasticsearch 中,文档归属于一种类型(Type),而这些类型存在于索引(Index)中,我们可以画一些简单的对比图来类比传统关系型数据库:

Relational DB -> Databases -> Tables -> Rows -> Columns

Elasticsearch -> Indices   -> Types  -> Documents -> Fields

2、操作

在安装位置,在bin文件下,双击elasticsearch.bat:

双击之后,显示下面的界面:

3、代码

from datetime import datetime
from elasticsearch import Elasticsearch

es = Elasticsearch()
es.indices.create(index='my-index', ignore=400)
print(es.index(index='my-index', doc_type='test-type', id=42, body={'any': 'data', 'timestamp': datetime.now()}))
print(es.get(index='my-index',doc_type='test-type',id=42)['_source'])

后续会继续更新elasticsearch的学习情况

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小杨算法屋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值