IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> python操作Elasticsearch7.17.0 -> 正文阅读

[大数据]python操作Elasticsearch7.17.0

1 介绍

官方文档:
https://www.elastic.co/guide/en/enterprise-search-clients/python/7.17/index.html

pypi文档:
https://pypi.org/project/elasticsearch/7.17.0/

2 安装 连接

pip install elasticsearch==7.17.0

异步 async/await

pip install elasticsearch[async]==7.17.0
from elasticsearch import Elasticsearch
client = Elasticsearch(hosts=['http://192.168.56.20:9200'],
                       http_auth=("elastic", "密码"))

3 索引操作

3.1 创建索引

def create_index(index, doc, index_id):
    client.create(index=index, document=doc, id=index_id)
doc = {
    "mappings": {
        "properties": {
            "name": {
                "type": "text"
            },
            "age": {
                "type": "long"
            },
            "birthday": {
                "type": "date"
            }
        }
    }
}

create_index("test6", doc, "1")

3.2 判断索引是否存在

def index_id_exists(index, id):
    return client.exists(index=index, id=id)
if index_id_exists("test1", "2") == True:
    print("索引存在")
else:
    print("索引不存在")

4 新增数据

def add_to_es(index, doc, id):
    # 重复添加,数据覆盖
    try:
        client.index(index=index, document=doc, id=id)
        return '1'
    except Exception as e:
        print(e)
        return '0'
doc = {
    "name": "灰太狼",
    "age": 22,
    "birthday":"2000-02-02",
    "tags": ["男"]
}
res = add_to_es("test1", doc, "10")

5 删除数据

def delete_by_index_and_id(index, id):
    try:
        res = client.delete(index=index, id=id)
        print(res['_shards']['successful'])
        return '1'
    except Exception as e:
        print(e)
        return '0'
# 删除数据
if delete_by_index_and_id("test1", "1") == "1":
    print("删除成功")
else:
    print("删除失败或不存在")

5 修改数据

def update_by_index_and_id(index, id, doc):
    try:
        client.update(index=index, id=id, doc=doc)
        return '1'
    except Exception as e:
        print(e)
        return '0'
doc = {
    "name": "有勇气的牛排",
    "age": 22,
    "birthday": "2000-05-20",
    "tags": ["男"]
}

res = update_by_index_and_id("test1", "1", doc=doc)
if res == "1":
    print("更新成功")
else:
    print("数据不存在")

6 查询数据

6.1 查询所有数据

def find_by_index_and_id(index, id):
    try:
        res = client.get(index=index, id=id)
        return res
    except Exception as e:
        print(e)
        return '0'
res = find_by_index_and_id("test1", "1")
print(res)

6.2 search数据

def find_search_article(index, key, source, highlight=None):
    """
    :param index: 索引        source = ["a_title"]
    :param query: query
    :param source: 取出的字段
    :param highlight: 高亮
    :return:
    """
    # should: 条件满足一个即可
    query = {"bool": {"should": [{"match": {"a_title": key}}, {"match": {"a_content": key}}]}}
    # query = {"bool": {"should": [{"match": key}]}}
    client = connect_elk()
    try:
        res = client.search(index=index, query=query, _source=source, highlight=highlight)
        return res
    except Exception as e:
        print(e)
        return '0'
res = find_search_article("article", "人民教育", ["a_title","a_html"], highlight_red())
if res != 0:
    print(res["hits"])
    total = res["hits"]["total"]["value"]
    res = res["hits"]["hits"]

参考文档:
https://www.cnblogs.com/lshan/p/15510018.html

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-02-28 15:36:32  更:2022-02-28 15:38:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 11:52:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码