本文目錄
一 什麼是 ElasticSearch
Elasticsearch 是一個分佈式可擴展的實時搜索和分析引擎,一個創建在全文搜索引擎 Apache Lucene(TM) 基礎上的搜索引擎.固然 Elasticsearch 並不單單是 Lucene 那麼簡單,它不只包括了全文搜索功能,還能夠進行如下工做:javascript
- 分佈式實時文件存儲,並將每個字段都編入索引,使其能夠被搜索。
- 可實現億級數據實時查詢
- 實時分析的分佈式搜索引擎。
- 能夠擴展到上百臺服務器,處理PB級別的結構化或非結構化數據。
二 安裝(windows下)
安裝包下載地址java
注意:Elasticsearch是用Java開發的,最新版本的Elasticsearch須要安裝jdk1.8以上的環境python
安裝包下載完,解壓,進入到bin目錄,啓動 elasticsearch.bat 便可windows
三 python操做ElasticSearch
# -*- coding:utf-8 -*- # Author : liuqingzheng from elasticsearch import Elasticsearch obj = Elasticsearch() # 建立索引(Index) result = obj.indices.create(index='user', body={"userid":'1','username':'lqz'},ignore=400) # print(result) # 刪除索引 # result = obj.indices.delete(index='user', ignore=[400, 404]) # 插入數據 # data = {'userid': '1', 'username': 'tank','password':'123'} # result = obj.create(index='news', doc_type='politics', id=1, body=data) # print(result) # 更新數據 ''' 不用doc包裹會報錯 ActionRequestValidationException[Validation Failed: 1: script or doc is missing ''' # data ={'doc':{'userid': '1', 'username': 'tank','password':'123ee','test':'test'}} # result = obj.update(index='news', doc_type='politics', body=data, id=1) # print(result) # 刪除數據 # result = obj.delete(index='news', doc_type='politics', id=1) # 查詢 # 查找全部文檔 query = {'query': {'match_all': {}}} # 查找名字叫作jack的全部文檔 # query = {'query': {'term': {'username': 'tank'}}} # 查找年齡大於11的全部文檔 # query = {'query': {'range': {'age': {'gt': 11}}}} allDoc = obj.search(index='news', doc_type='politics', body=query) print(allDoc['hits']['hits'][0]['_source'])