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