基于python的ES数据库的建立与增删改查

需要安装的库

elasticsearch库,json库通过pip install 下载即可

1.建立连接

# 创建Elasticsearch连接对象
es = Elasticsearch(hosts=["localhost:9200"])

2.建立索引

# 定义索引设置
settings = {
    "settings": {
        "number_of_shards": 3,
        "number_of_replicas": 2
    }
}
​
# 创建索引
index_name = "my_index" #自定义索引名称
es.indices.create(index=index_name, body=settings)

3.增加插入一段数据(增)

res = es.index(index="jczyurlinfo", body=data)#data为需要插入的数据

如将一个.json文件里的数据逐行插入my_index索引中

with open("data.json",encoding="utf-8") as f:
    data =json.load(f)
    # print(data)
    #逐行读取插入
    for line in data:
        res = es.index(index="my_index", body=line)
​

4.删除my_index索引中的想删除的部分(删)

# 定义查询语句
query = {
    "query": {
        "match": {
            "category": "book"
        }
    }
}
#或者可以用term定义查询语句,term 是一种常用的查询类型,用于精确匹配某个字段中包含指定值的文档。与 match 查询不同的是,term 查询不会对查询字符串进行分词处理,而是将查询字符串作为一个整体来匹配,因此适用于搜索关键词不需要分词的场景。
query = {
    "query": {
        "term": {
            "category": "book"
        }
    }
}
​
# 执行删除操作
index_name = "my_index"
response = es.delete_by_query(index=index_name, body=query)
print(response)

5.改变一个字段的值(改)

index_name = "my_index"# 索引名称
doc_id = "1"       文档id
update_body = {
    "doc": {
        "category": "new_category"
    }
}     # 更新的语句
response = es.update(index=index_name, id=doc_id, body=update_body)
print(response)

6.查看索引的全部数据(查)

# 定义查询语句
query = {
    "query": {
        "match": {
            "category": "books"
        }
    }
}
#想查询全部数据即可修改上述查询语句为:
#query = {"query": {"match_all": {}}}
# 执行查询操作
index_name = "my_index"
response = es.search(index=index_name, body=query)
print(response)

你可能感兴趣的:(数据库操作,elasticsearch,大数据,python)