ELK-基础系列(八)-Python调取ES API
ElasticSearch
索引(index)
索引(index
)就是一个有相似特征的文档的集合,es把数据存储到一个或多个索引中。通常index是一个比较大的分类,比如按照不同的客户,或者不同的产品,或者不同的时间戳。
通常构造index
的时候需要考虑好分类的粒度,因为如果后面想要批量删除的话基本单位是索引。如果构造的index
分类粒度太大,那么批量删除的时候将会变得很麻烦。
如果是采用ES来搭建实时日志搜索平台,那么通常建议index按照时间戳来进行命名,因为这样的话可以设置超过几天的日志全部删除,清理磁盘空间。
文档(document)
文档(document
)是es中存储数据的实体,它是可以被索引的基本单元。每一个文档都以json格式表示,每一个索引可以任意多个文档。
简单来说就是文档其实就是真实的每一条的存储的数据,比如每条以json格式表示的日志。每一个文档物理上存在一个索引中,但文档必须有一个文档类型(type)。
类型(type
)
类型(type)是索引之下的逻辑分区,相对index更细的分类粒度。比如如果index以日期命名,那么type可以以具体的客户命名。然后每一个客户下面,又有很多的文档实体。
id
每一个文档实体,ES会自动为其创建一个的id,比如“AV8tQS119lFHJS7Mv7v8”。
这里不太重要不需要关注,但有一点需要注意,日志的字段不能有id这个字段,否则会跟自动创建的id冲突,导致可能插入数据失败。
单一操作
- 插入
create
:必须指定待查询的idnex、type、id和查询体body;缺一不可,否则报错index
:相比于create,index的用法就相对灵活很多;id并非是一个必选项,如果指定,则该文档的id就是指定值,若不指定,则系统会自动生成一个全局的id赋给该文档。 eg:
body = {"name": 'lucy', 'sex': 'female', 'age': 10}
es = Elasticsearch(['localhost:9200'])
es.index(index='indexName', doc_type='typeName', body, id=None)
相关文章