分布式全文檢索引擎ElasticSearch原理及使用實例
一 什么是 ElasticSearch
Elasticsearch 是一個分布式可擴展的實時搜索和分析引擎,一個建立在全文搜索引擎 Apache Lucene(TM) 基礎上的搜索引擎.當然 Elasticsearch 并不僅僅是 Lucene 那么簡單,它不僅包括了全文搜索功能,還可以進行以下工作:
- 分布式實時文件存儲,并將每一個字段都編入索引,使其可以被搜索。
- 可實現(xiàn)億級數據實時查詢
- 實時分析的分布式搜索引擎。
- 可以擴展到上百臺服務器,處理PB級別的結構化或非結構化數據。
二 安裝(windows下)
注意:Elasticsearch是用Java開發(fā)的,最新版本的Elasticsearch需要安裝jdk1.8以上的環(huán)境
安裝包下載完,解壓,進入到bin目錄,啟動 elasticsearch.bat 即可
三 python操作ElasticSearch
# -*- coding:utf-8 -*-
from elasticsearch import Elasticsearch
obj = Elasticsearch()
# 創(chuàng)建索引(Index)
result = obj.indices.create(index='user', body={"userid":'1','username':'sui'},ignore=400)
# print(result)
# 刪除索引
# result = obj.indices.delete(index='user', ignore=[400, 404])
# 插入數據
# data = {'userid': '1', 'username': 'sui','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': 'lqz','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': 'lqz'}}}
# 查找年齡大于11的所有文檔
# query = {'query': {'range': {'age': {'gt': 11}}}}
allDoc = obj.search(index='news', doc_type='politics', body=query)
print(allDoc['hits']['hits'][0]['_source'])
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Python 實現(xiàn)的 Google 批量翻譯功能
這篇文章主要介紹了Python 實現(xiàn)的 Google 批量翻譯功能,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-08-08
如何實現(xiàn)在pycharm中將.ui文件轉化為.py文件
這篇文章主要介紹了如何實現(xiàn)在pycharm中將.ui文件轉化為.py文件,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-06-06
Python使用scrapy采集數據過程中放回下載過大頁面的方法
這篇文章主要介紹了Python使用scrapy采集數據過程中放回下載過大頁面的方法,可實現(xiàn)限制下載過大頁面的功能,非常具有實用價值,需要的朋友可以參考下2015-04-04

