python操作ES的三种办法

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

python操作ES的三种办法

1 使用requests模块

import requests

data = {
    "name": "大娘子",
    "age": 18,
    "from": "sheng",
    "desc": "肤白貌美,娇憨可爱",
    "tags": ["白", "富", "美"]
}

res = request.put('http://127.0.0.1:9200/lqz/_doc/6', json=data)
print(res.text)

2 使用官方提供的包

# 推荐使用  elasticsearch  需要注意版本问题
from elasticsearch import Elasticsearch

client = Elasticsearch("http://localhost:9200")
print(client.info) # es信息

# 创建索引
result = client.indices.create(index='user')
print(result)
# 删除索引
result = client.indices.delete(index='user')
print(result)

# 更新数据  必须的用
'''
不用doc包裹会报错
ActionRequestValidationException[Validation Failed: 1: script or doc is missing
'''

data = {'doc': {'userid': '1', 'username': 'lqz', 'password': '123ee', 'test': 'test'}}
result = client.update(index='news', doc_type='_doc', body=data, id=1)
print(result)

# 删除数据             
result = client.del
print(result) 

# 查询           查询 原生咋查,这里就可以咋用                                     
# 查找所有文档                                             
query = {'query': {'match_all': {}}}                 
#  查找名字叫做lxx的所有文档                                    
query = {'query': {'term': {'name': 'lxx'}}}         
# 查找年龄大于11的所有文档                                      
query = {'query': {'range': {'price': {'gt': 100}}}} 
allDoc = client.search(index='books',  body=query)   
print(allDoc)                                        

3 ORM包

elasticsearch-dsl
from datetime import datetime
from elasticsearch_dsl import Document, Date, Nested, Boolean,analyzer, InnerDoc, Completion, Keyword, Text,Integer

from elasticsearch_dsl.connections import connections

connections.create_connection(hosts=["localhost"])
class Article(Document):
    title = Text(fields={'title': Keyword()})
    author = Text()

    class Index:
        name = 'myindex'  # 索引名
        
if __name__ == '__main__':
    Article.init()  # 创建映射
    # 保存数据
    article = Article()
    article.title = "test"
    article.author = "lxx"
    article.save()  # 保存数据

    # 查询数据
    s=Article.search()
    s = s.filter('match', title="test")
    results = s.execute()
    print(results)

    # 删除数据
    s = Article.search()
    s = s.filter('match', title="test").delete()
    # 修改数据
    s = Article().search()
    s = s.filter('match', title="test")
    results = s.execute()
    print(results[0])
    results[0].title="xxx"
    results[0].save()        

文章来源地址https://www.toymoban.com/news/detail-517397.html

到了这里,关于python操作ES的三种办法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • elasticsearch(三)-- 理解ES的索引操作

    上一章我们主要学习了es的几个客户端,那么我们后面也主要通过kibana客户端、HighLevelClient高级客户端这两个来学习es. 这一章的学习我们主要是学习一些Elasticsearch的基础操作,主要是深入一些概念,比如索引的具体操作,映射的相关语法,对数据类型,文档的操作。那么主要

    2024年02月04日
    浏览(48)
  • Elasticsearch学习3-使用RestClient操作es

    JavaREST客户端有两种模式: Java Low Level REST Client:ES官方的低级客户端。低级别的客户端通过http与Elasticearch集群通信。 Java High Level REST Client:ES官方的高级客户端。基于上面的低级客户端,也是通过HTTP与ES集群进行通信。它提供了更多的接口。 此外Spring也对RestClient进行了封装

    2024年02月11日
    浏览(47)
  • Elasticsearch ES操作:查询数据(全部、分页、单条)

    查询 条件查询 指定条数 返回结果

    2024年02月16日
    浏览(39)
  • Elasticsearch 实战之三:ES 基本操作

    目录 0. 数据格式说明 1. ES的基本操作 1.1 索引操作 1.1.1 建立索引 1.1.2  删除索引 1.1.3  查询索引 1.2 映射操作 1.2.1 建立映射 1.2.2 查询映射 1.3 基本操作-CRUD 1.3.1 新增和替换文档 1.3.2 查询文档 在实战开始之前,为了便于书写和沟通,本文先来约定一下如何在文章中表达请求

    2024年02月11日
    浏览(46)
  • Elasticsearch linux上操作es命令详解

    2024年02月13日
    浏览(54)
  • ElasticSearch文档操作[ES系列] - 第502篇

    历史文章( 文章 累计500+) 《 国内最全的Spring Boot系列之一 》 《 国内最全的Spring Boot系列之二 》 《 国内最全的Spring Boot系列之三 》 《 国内最全的Spring Boot系列之四 》 《 国内最全的Spring Boot系列之 五 》 《 国内最全的Spring Boot系列之六 》 《 国内最全的Spring Boot系列

    2024年03月23日
    浏览(38)
  • ElasticSearch第六讲 ES 三种分页查询from+size / Scroll /search_after

    我的Git地址:https://gitee.com/ITLULU 欢迎访问 ES的分页查询和关系数据库的分页查询的区别: ES分页查询有以下几种: 1:简单的 from size (有默认的最大Size,不可无限大小查询,因为数据过多查询性能会降低,且也要考虑内存问题,以及OS缓存数据的能力) 2: scroll基于查询窗口

    2024年02月01日
    浏览(54)
  • Elasticsearch(五)--ES文档的操作(上)---写入文档

    使用ES构建搜索引擎时需要经常对文档进行操作,除了简单的单条文档操作,有时还需要进行批量操作。我们这章主要学习ES文档的增删改的操作,由于涉及到的代码量会比较多,所以分为3篇文章分别说明文档的这个三个操作。那么我们对文档操作的学习除了在kibana客户端之

    2024年01月16日
    浏览(44)
  • Elasticsearch(六)--ES文档的操作(中)---修改文档

    上篇文章我们了解了ES的插入和批量插入文档的操作,分别通过ES的kibana客户端以及Java高级Rest客户端进行学习,那么本篇则进入到对文档的修改操作,同新增文档,也有更新单条文档和批量更新文档操作,但还多出一个根据条件更新文档,我们本篇均会涉及到。 在ES中更新索

    2024年02月05日
    浏览(45)
  • Elasticsearch(七)--ES文档的操作(下)---删除文档

    上篇文章我们了解了ES的修改文档的操作,也同样分别通过ES的kibana客户端以及Java高级Rest客户端进行学习,那么本篇末尾要给大家介绍的是对文档的删除操作,同新修改文档,也有删除单条文档和批量删除文档操作,根据条件删除文档,我们本篇均会涉及到。 在ES中删除文档

    2023年04月12日
    浏览(35)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包