分布式全文檢索引擎ElasticSearch原理及使用實(shí)例
一 什么是 ElasticSearch
Elasticsearch 是一個(gè)分布式可擴(kuò)展的實(shí)時(shí)搜索和分析引擎,一個(gè)建立在全文搜索引擎 Apache Lucene(TM) 基礎(chǔ)上的搜索引擎.當(dāng)然 Elasticsearch 并不僅僅是 Lucene 那么簡(jiǎn)單,它不僅包括了全文搜索功能,還可以進(jìn)行以下工作:
- 分布式實(shí)時(shí)文件存儲(chǔ),并將每一個(gè)字段都編入索引,使其可以被搜索。
- 可實(shí)現(xiàn)億級(jí)數(shù)據(jù)實(shí)時(shí)查詢(xún)
- 實(shí)時(shí)分析的分布式搜索引擎。
- 可以擴(kuò)展到上百臺(tái)服務(wù)器,處理PB級(jí)別的結(jié)構(gòu)化或非結(jié)構(gòu)化數(shù)據(jù)。
二 安裝(windows下)
注意:Elasticsearch是用Java開(kāi)發(fā)的,最新版本的Elasticsearch需要安裝jdk1.8以上的環(huán)境
安裝包下載完,解壓,進(jìn)入到bin目錄,啟動(dòng) 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]) # 插入數(shù)據(jù) # data = {'userid': '1', 'username': 'sui','password':'123'} # result = obj.create(index='news', doc_type='politics', id=1, body=data) # print(result) # 更新數(shù)據(jù) ''' 不用doc包裹會(huì)報(bào)錯(cuò) 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) # 刪除數(shù)據(jù) # result = obj.delete(index='news', doc_type='politics', id=1) # 查詢(xún) # 查找所有文檔 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'])
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于Python 3中print函數(shù)的換行詳解
最近在學(xué)習(xí)python3,發(fā)現(xiàn)了一個(gè)問(wèn)題想著總結(jié)出來(lái),所以下面這篇文章主要給大家介紹了關(guān)于Python 3中print函數(shù)換行的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)需要的朋友們具有一定的參考學(xué)習(xí)價(jià)值,感興趣的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-08-08Python 實(shí)現(xiàn)的 Google 批量翻譯功能
這篇文章主要介紹了Python 實(shí)現(xiàn)的 Google 批量翻譯功能,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08Python?jieba庫(kù)的安裝詳細(xì)圖文教程
jieba庫(kù)的作用主要用于中文分詞,是一種不錯(cuò)的中文分詞組件,下面這篇文章主要給大家介紹了關(guān)于Python?jieba庫(kù)安裝的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-03-03Python使用回溯法子集樹(shù)模板解決迷宮問(wèn)題示例
這篇文章主要介紹了Python使用回溯法解決迷宮問(wèn)題,簡(jiǎn)單講述了迷宮問(wèn)題的原理并結(jié)合實(shí)例形式分析了Python基于回溯法子集樹(shù)模板解決迷宮問(wèn)題的相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2017-09-09如何實(shí)現(xiàn)在pycharm中將.ui文件轉(zhuǎn)化為.py文件
這篇文章主要介紹了如何實(shí)現(xiàn)在pycharm中將.ui文件轉(zhuǎn)化為.py文件,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-06-06Python使用scrapy采集數(shù)據(jù)過(guò)程中放回下載過(guò)大頁(yè)面的方法
這篇文章主要介紹了Python使用scrapy采集數(shù)據(jù)過(guò)程中放回下載過(guò)大頁(yè)面的方法,可實(shí)現(xiàn)限制下載過(guò)大頁(yè)面的功能,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04