美文网首页
python | Elasticsearch-dsl常用方法总结

python | Elasticsearch-dsl常用方法总结

作者: 等_7a20 | 来源:发表于2019-05-31 15:36 被阅读0次

        Elasticsearch DSL是一个高级库,其目的是帮助编写和运行针对Elasticsearch的查询。它建立在官方低级客户端(elasticsearch-py)之上。

        它提供了一种更方便和习惯的方式来编写和操作查询。它接近Elasticsearch JSON DSL,反映了它的术语和结构。它直接使用定义的类或类似查询集的表达式来暴露从Python的DSL的整个范围。

1.首先导入包

# 导入包
from elasticsearch import Elasticsearch
from elasticsearch_dsl import Search, Q

2.连接上搭建好的es服务器 并创建dsl 查询实例

es = Elasticsearch(hosts="http://xxxxx:9222/")  # 连接es
s = Search(using=es, index="xxxxx")   #using: 指定es 引擎  index:指定索引

3.接下来就是常用的增删改查的基本使用
3.1 创建索引
  首先定义映射关系(也可以不指定,如果想要使用join功能必须手动定义)

# 创建映射
mappings = {
    "mappings": {
        "data": {        # "文档类型"
            "properties": { 
                "xxx": {     # "索引名"
                    "type": "join",   # "如果想用join功能必须定义类型为join"
                    "relations": {
                        "parent": "child"    # 父类对应子类  parent 是父文档 child是子文档(自己指定)
                    }
                }
            }
        }
    }
}

3.2创建库

# 创建index 库
if es.indices.exists("xxx") is not True:   # 判断库是否存在如果不存在创建
    es.indices.create(index="xxx", body=mappings)

3.3删除库

es.delete(index='xxx', doc_type='xxx', id='xxx')

3.4更新库数据

es.update(index='xxx', doc_type='xxx', id='xxx', body={待更新字段})

3.5dsl查询数据
        查询1000条数据

response = s.params(size=1000).filter("match_all").sort("_id").execute()  # 查询1000条数据 并根据_id进行排序

#注意: 如果不指定条数 默认只查询10条数据

        根据父级查询子级

response = s.query("has_parent", parent_type="xxx", query={"match": {"id": "1"}}).execute()

        根据子级查询父级

response = s.query("has_child", type="xxx", query={"match": {"id": "5"}}).execute()

        将查询结果转化为字典

response.to_dict()

相关文章

  • python | Elasticsearch-dsl常用方法总结

    Elasticsearch DSL是一个高级库,其目的是帮助编写和运行针对Elasticsearch的查询。它建立...

  • 2017.6.13-14

    学习python总结python常用的方法string的常用方法dictionary的常用方法 python抽象,...

  • Python OS模块常用方法总结

    Python OS模块常用方法总结Python OS模块方法:操作 说明os.g...

  • Python列表常用方法

    一、前言? ✔本文是Python列表常用方法总结 1、append(object)方法 简介:向列表最后添加一个元...

  • Python字典常用方法

    一、前言? ✔本文是Python字典常用方法总结 1、clear()方法? 简介:用于清空字典中所有的 key-v...

  • selenium踩过的坑

    Python selenium常用方法总结 1. 显示等待和隐式等待 1. 显示等待:WebDriverWait(...

  • Python元组常用方法

    一、前言? ✔本文是Python元组常用方法总结Python的元组与列表类似,不同之处在于元组的元素不能修改,元组...

  • python itertools常用方法总结

    1.count itertools.count函数返回的生成器能生成多个数,如果不传入参数,itertools.c...

  • Python常用魔术方法总结

    __init__:构造函数 触发时机:实例化对象之后自动触发,在__new__之后执行。实例化对象其实包含两步,1...

  • OpenCV-Python常用函数

    零、前言 这是一篇OpenCV-Python的使用总结,记录的是一些常用的OpenCV-Python函数及使用方法...

网友评论

      本文标题:python | Elasticsearch-dsl常用方法总结

      本文链接:https://www.haomeiwen.com/subject/inqgtctx.html