python操作Elasticsearch增删改查删除索引⼀、python连接es
package: pip install elasticsearch
es = Elasticsearch(
['address'],
http_auth=('user_name', 'password'),
port=9200,
use_ssl=False
)
⽆密码,⾃⼰搭建的
es = Elasticsearch(
["host:9200/"], # 连接集,以列表的形式存放各节点的IP地址
)
⼆、基本操作之创建索引,集合
mappings = {
"mappings": {
"example_name_test": {
"properties": {
"email_id": {
"type": "text",
"index": "true"
},
"company_name": {
"type": "keyword",  # keyword不会进⾏分词,text会分词,integer整数,float浮点数
"index": "true"# 不建索引
},
"company_id": {
"type": "keyword",  # keyword不会进⾏分词,text会分词
"index": "true"# 不建索引
},
"result": {
"type": "object",
"properties": {
"client": {"type": "text", "index": "true"},
}
},
"create_time": {
"type": "keyword",
"index": 'true'
}
}
}
}
}
res = self.ate(index='example_name_test', body=mappings)
     print(res)
#  example_name_test 为名字
内容长度如果较多使⽤text,较少使⽤keyword,⼀般使⽤keyword的⽐较多,因为text查询极其占⽤内存
基本的增删改查语句如果添加时间字段建议使⽤时间戳,类型⽤keyword
⼆插⼊数据
res = es.index(index=name, doc_type=name, body=body)
print(res)
三、查询
#普通查询
dsl = {'query': {'match': {'_id': 'AjDxVXABXWez-Pv8B-Ib'}},
}
# 查询全部
dsl = {'query': {'match_all': {}}}
# 多条件查询
dsl = {
"query": {
"bool": {
"must": [
{
"term": {
"字段1": '1000001214'
}
},
{
"term": {
"字段2": content
}
},
]
}
},
}
# 查询翻页
dsl = {
"query": {
"match": {"code" : code}
},
"from":0,   # 从第⼏个开始
"size":100  # 返回条数
}
# 去重查询
dsl = {
"query": {
"bool": {
"must": [
{
"term": {
"email_id": email.m_mem_id
}
},
{
"term": {
"country": untry
}
}
]
}
}, "collapse": {
"field": "去重字段"
}
      }
# 字段排序
dsl = {
"query": {
"bool": {
"must": [
{
"term": {
"email_id": email.m_mem_id
}
},
{
"term": {
"country": untry
}
}
]
}
},
'sort':[
{'排序字段':{
'order':'desc'
}}
]
}
# 执⾏语句
res = es.search(index='创建索引时起的名字', body=dsl)
# 第⼆种⽅式  size建议在10000以内,⼤于10000报错
res = es.search(index='创建索引时起的名字', body=dsl, scroll='5m',size=5000)四、删除
# 删除⽆⾮就是根据查询条件删除
dsl=查询条件参数
es.delete_by_query(index='名字', body=dsl)
# 删除索引
# res = es.indices.delete('hot_keyword')  # 删除索引
res = es.delete(index=body_name, doc_type=body_name, id=d_id['_id'])  # 根据_id删除
五、更新
updateBody = {
'doc': {
"字段名": 更新的内容
}
}
res = self.es.update(index='索引名字', doc_type='索引名字', id='集合⾥⾯的_id', body=updateBody)更为详细的参考教程后续补充

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。