pythonsearch⽤法_python-elasticsearch基本⽤法python-elasticsearch基本⽤法
⼀、安装
pip install elasticsearch
pip install elasticsearch[async]#⽀持异步的es库
python新手代码userid⼆、实例es对象,并创建index
from elasticsearch import Elasticsearch
from elasticsearch import AsyncElasticsearch
es = Elasticsearch(host="localhost", port=9200)
#es = AsyncElasticsearch()
body = {
"settings": {
"number_of_shards": 3,
"number_of_replicas": 2
},
"mappings":{
# "_doc":{
"properties":{
"id":{
"type":"integer",
},
"text": {
"type": "text",
"analyzer": "ik_max_word", #指定ik分词器,适⽤中⽂分词。
"index":False
},
"userId": {
"type": "long",
},
"reprinted": {
"type": "keyword",
},
}
# }
}
}
#创建 index
ate(index = "test", body = body)
#删除 index
es.indices.delete(index = 'test')
三、增删改查
#插⼊数据
es.index(index = "test", doc_type = "_doc", id = 1, body = {"id":1, "name":"⼩明"})
#可以不⽤指定id,create会⾃动添加id。
#删除指定数据
es.delete(index='test', doc_type='_doc', id=1)
#修改字段
es.update(index = "test", doc_type = "_doc", id = 1, body = {"doc":{"name":"张三"}}) #查询数据
<(index = "test", doc_type = "_doc", id = 1)
es.search(index = "test", doc_type = "_doc", body = query)
#滚动分页的func,第四块部分 分页查询中 说明
es.scroll(index = "test", scroll_id = "scroll_id", scroll = "5m")
#批量插⼊&批量更新
"""
{
'_index':'test',
'_type':'_doc',
'_id':20,
'doc':{'name':'李四', 'id':20},
}
插⼊的每⼀个数据中,都需要指定 _index,_type,_id 更新、插⼊的数据放在doc中
"""
from elasticsearch.helpers import async_bulk,bulk
async def main():
await async_bulk(es, data)
bulk(es, data)
四、es.search筛选数据的参数
es.search(index = "test", doc_type = "_doc", body = body, size = 10) """
index、doc_type、body
size = 10 : 返回的数据量
filter_path = [ 'hits.hits._id','hits.hits._type']: ⽤于指定响应的内容default_operator: 指定查询的运算符 AND或者OR 默认值为:OR
from_ = 0 : 返回数据的起始值,⽤于分页
scroll = "5m" : 是否记录滚动翻页的索引值, 记录5分钟
"""
#返回所有数据
body = {"query":{"match_all": {}}}
#指定检索字段
body = {"query":{"match": {"name":"⼩明"}}}
#排序
body = {
"query":{...},
"sort":[
{
"id(排序字段)":{
"order" : "desc" #asc\desc 升序\降序
}
}
]
}
#分页,从第10个数据开始,返回10条数据。 == [10:20]
es.search(size = 10, from_ = 10)
#使⽤滚动分页,速度快,查询后会记录最后⼀条数据,不适⽤跳页查询。#响应返回 _scroll_id字段、调⽤es.scroll⽅法返回下⼀页。
es.search(scroll = "5m")
es.scroll(scroll_id = "_scroll_id", scroll = "5m")

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