分佈式全文檢索引擎之ElasticSearch

 本文目錄

一 什麼是 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'])
複製代碼
相關文章
相關標籤/搜索