【es数据库】python 使用Elasticsearch数据库

这篇具有很好参考价值的文章主要介绍了【es数据库】python 使用Elasticsearch数据库。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

es 数据库

Elasticsearch是一个开源的高扩展性搜索引擎,它可以快速地存储、搜索和分析大量的数据。
使用Python语言和Elasticsearch,可以轻松地创建和操作“数据库”和“数据库表”,而且具备分布式和高扩展性的特点,适用于大规模数据存储与搜索场景。

ES数据库保存数据的格式是文件形式的吗?

ES是一种文档数据库,它并不像关系型数据库一样将每张表的每条记录都保存在表里面,而是将所有文档存储在一个索引中。每个文档都是一个JSON结构,包含多个字段。ES还支持对文档进行全文检索和聚合查询等高级功能。

在存储上,ES将每个索引分成多个分片,每个分片都是一个Lucene实例。每个文档被存储到其中一个分片中,根据文档ID生成一个唯一标识符来定位分片。为了提高性能,ES会在内存中缓存热点数据,并使用文件系统缓存来减少IO操作。

1. 创建“数据库” | 索引(index)

在Elasticsearch中,“数据库”被封装为索引(Index),可以通过以下代码来创建一个索引:

# 首先导入了Elasticsearch模块
from elasticsearch import Elasticsearch

# 创建es数据库句柄
es = Elasticsearch()

# 接着定义了一个索引名称
index_name = "myindex"

# 通过`es.indices.exists()`方法来判断索引是否存在
if not es.indices.exists(index_name):
	# 如果索引不存在,则通过`es.indices.create()`方法来创建索引
    es.indices.create(index=index_name)

2. 创建“数据库表” | 文档类型(doc_type)

在Elasticsearch中,每个索引可以包含多个文档类型(Type),可以通过以下代码来创建一个文档类型:

# `es.indices.put_mapping()`方法,在指定的索引上创建了一个名称为`type_name`的文档类型,并定义了文档类型中的字段
es.indices.put_mapping(
   index=index_name, # 在指定的索引index_name上创建
   body={   # 文档中的字段
       "properties": {
           "field1": {
               "type": "keyword"
           },
           "field2": {
               "type": "text"
           }
       }
   },
   doc_type=type_name  # 文档名称为type_name  
)

3. 创建“数据库表字段”

在上述代码中,通过body参数定义了文档类型中的字段。其中,"type": "keyword"表示该字段类型为字符串,且不需要分词。"type": "text"表示该字段类型为字符串,且需要分词。文章来源地址https://www.toymoban.com/news/detail-524999.html

4. 常用的ES数据库操作

插入数据 | index | res [‘created’]

doc_id = 1
doc = {
    "field1": "value1",
    "field2": "value2"
}
res = es.index(index=index_name, doc_type=type_name, id=doc_id, body=doc)
if res["created"]:
    print("Document created successfully")

查询数据 | get | res[’ _source’]

res = es.get(index=index_name, doc_type=type_name, id=doc_id)
doc = res["_source"]

更新数据 | update | res[‘result’]

doc_id = n;
doc = {
    "field1": "new_value1"
}
res = es.update(index=index_name, doc_type=type_name, id=doc_id, body={"doc": doc})
if res["result"] == "updated":
    print("Document updated successfully")

删除数据 | delete | res[“result”]

res = es.delete(index=index_name, doc_type=type_name, id=doc_id)
if res["result"] == "deleted":
    print("Document deleted successfully")

到了这里,关于【es数据库】python 使用Elasticsearch数据库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包