es是基于Apache Lucene的开源分布式(全文)搜索引擎,,提供简单的RESTful API来隐藏Lucene的复杂性。特点:
- 1、分布式的实时文件存储,每个字段都被索引并可被搜索
- 2、分布式的实时分析搜索引擎
- 3、可以扩展到成百上千台服务器,处理PB级结构化或非结构化数据。
建立es连接
- Python引入elasticsearch库
from elasticsearch import Elasticsearch
es = Elasticsearch(["localhost:9200"])
查询数据
- 查询所有数据
# 方式1:
es.search(index="index_name", doc_type="type_name")
# 方式2:
body = {
"query":{
"match_all":{}
}
}
es.search(index="index_name", doc_type="type_name", body=body)
- 等于查询,term与terms
# term: 查询 xx = “xx”
body = {
"query":{
"term":{
"name":"python"
}
}
}
# 查询name="python"的所有数据
es.search(index="index_name",doc_type="type_name",body=body)
# terms: 查询 xx = “xx” 或 xx = “yy”
body = {
"query":{
"terms":{
"name":[
"ios","android"
]
}
}
}
# 查询出name="ios"或name="android"的所有数据
es.search(index="index_name",doc_type="type_name",body=body)
其他不做赘述:参考ES语法https://www.elastic.co/guide/cn/elasticsearch/guide/current/foreword_id.html