欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Elasticsearch怎么安裝及在Python中怎么使用

Elasticsearch怎么安裝及在Python中怎么使用,相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

目前創(chuàng)新互聯(lián)建站已為超過千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間綿陽(yáng)服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、內(nèi)江網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。

官網(wǎng)對(duì)Elasticsearch 介紹的第一句話:

Elasticsearch is a distributed, RESTful search and analytics engine capable of solving a growing number of use cases. 

Elasticsearch 是一個(gè)分布式的 RESTful 風(fēng)格的搜索和數(shù)據(jù)分析引擎,能夠解決不斷涌現(xiàn)出的各種用例。Elasticsearch 的底層是開源庫(kù) Lucene。 Lucene是一個(gè)更加底層的搜索引擎,但是,你沒法直接用 Lucene,必須自己寫代碼去調(diào)用它的接口。Elasticsearch 是 Lucene 的封裝,提供了 REST API 的操作接口,開箱即用。可以這樣理解,Lucene就好像是百度,然后你在百度的基礎(chǔ)上開發(fā)了一個(gè)更高級(jí),方便的搜索引擎,就是Elasticsearch 。Elasticsearch可以看做是一個(gè)NOSQL的數(shù)據(jù)庫(kù),提供數(shù)據(jù)的增刪改查等基礎(chǔ)功能。什么是NoSQL呢?

"Next Generation Databases mostly addressing some of the points: being non-relational, distributed, open-source and horizontally scalable

下一代主要解決如下問題的數(shù)據(jù)庫(kù): 非關(guān)系型的,分布式的,開源的并且可以扁平擴(kuò)展。

好,基本概念就說到這里,如果不懂也不影響你使用ElasticSearch,可以簡(jiǎn)單理解為它就是一個(gè)數(shù)據(jù)庫(kù),可以存放數(shù)據(jù),但是存儲(chǔ)的數(shù)據(jù)不是類似MySQL之類的結(jié)構(gòu)化數(shù)據(jù),最重要的是,ElasticSearch的檢索速度非常快,基本查一條數(shù)據(jù)在毫秒級(jí)。另外還有一個(gè)基于Lucene的搜索引擎叫做 Solr, 它是Java搜索引擎服務(wù)器

今天主要介紹一下怎么安裝和在Python中怎么使用。

1.  安裝-Ubuntu

1.1 ElasticSearch

下載地址: https://www.elastic.co/cn/downloads/elasticsearch 

直接下載 zip文件就可以,下載之后,cd到安裝的文件夾下面,然后執(zhí)行:

 ./bin/elasticsearch 

這樣就開啟了ElasticSearch服務(wù),

然后執(zhí)行:

        curl http://localhost:9200/

這里如果沒安裝curl的話,需要先安裝。

1.2 Kibana 

Kibana是一個(gè)ElasticSearch的管理工具,可以可視化 Elasticsearch 中的數(shù)據(jù),順便也就下載了吧。這個(gè)挺好用的,功能很多,我也在摸索中。。

 地址: https://www.elastic.co/cn/products/kibana

下載之后還是一樣,cd到解壓的文件下面,執(zhí)行

./bin/kibana

然后打開瀏覽器,輸入:

 http://localhost:5601

然后你就能看到一個(gè)比較帥的界面,在左邊有個(gè)Dev的選項(xiàng),這里可以寫各種增刪改查的語句。

2. Python中使用Elasticsearch

2.1 安裝 

Python 中的Elasticsearch模塊是Elasticsearch基于Python的客戶端。安裝很簡(jiǎn)單,直接用pip就可以,現(xiàn)在安裝的版本是6.0.0.(2018-1-5)

 

pip install elasticsearch 或者

 

pip3 install elasticsearch

2.2 創(chuàng)建索引 

from elasticsearch import Elasticsearch

es = Elasticsearch(hosts="localhost:9200")

# 這里默認(rèn)是9200端口,如果你要把數(shù)據(jù)存到
# 別的地方(服務(wù)器),改一下這個(gè)地址就可以。

es.create(index='test_index',
         doc_type='post')
         

2.3  將數(shù)據(jù)存入到ES中

數(shù)據(jù)存儲(chǔ)有三種方法,一種是用index直接單條存入,一種是用indices類下面的create方法,如果索引存在則直接存入,如果不存在則創(chuàng)建索引,然后存入。還有一種是用bulk方法批量存,這個(gè)是比較常用的方法。你可以根據(jù)你的實(shí)際任務(wù)來選擇。


from elasticsearch import Elasticsearch
from elasticsearch.helpers import bulk

es = Elasticsearch(hosts="localhost:9200")

index_name = "test_index"

try:
   # 每次存入數(shù)據(jù)前,可以做個(gè)索引
   # 是否存在的判斷,防止沖突。
   es.indices.delete(index=index_name)
except:
   pass

# 單條存入
es.index(index="test_index",
        doc_type="post",
        id=1,
        body={
            "這里是你的數(shù)據(jù)": "這里是你的數(shù)據(jù)"}
        )
# 或者
es.indices.create(index=index_name,
                 body={
                     "這里是你的數(shù)據(jù)": "這里是你的數(shù)據(jù)"}
                 )

# 批量存儲(chǔ)
with open("file_test.txt", 'r') as fr:
   lines = fr.readlines()
   i = 0
   bulk_data = []
   for line in lines:
       data = {
           "_index": "test_index",
           "_type": "post",
           "_source": {
               "content": line}
       }
       bulk_data.append(data)
       i += 1
       # 每隔10000條數(shù)據(jù)存一次。
       if i % 10000 == 0:
           bulk(es, bulk_data)
           bulk_data = []

2.3 檢索數(shù)據(jù)

當(dāng)把數(shù)據(jù)存入ES之后,就是檢索了,不然存進(jìn)去不用,那就真的沒啥用了,是吧。檢索也比較簡(jiǎn)單,主要是要理清這里面的邏輯關(guān)系是,實(shí)在不懂就多試試。舉個(gè)栗子。

body = {
   "query": {
       "match": {
           "title": {
               "query": "中國(guó) "
           }
       }
   }
}
es.search(index="test_index",
         doc_type="post",
         body=body)

ElasticSearch主要是用來做檢索的,你可以把它就理解為一個(gè)百度。所以熟練使用檢索數(shù)據(jù)是很重要的。檢索的時(shí)候,主要就是那個(gè)body里面寫的東西,里面的query,match,是關(guān)鍵字,這個(gè)不能修改,title是你存儲(chǔ)的時(shí)候定義的字段名字,然后“中國(guó)”是你要檢索的內(nèi)容。

看完上述內(nèi)容,你們掌握Elasticsearch怎么安裝及在Python中怎么使用的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

分享標(biāo)題:Elasticsearch怎么安裝及在Python中怎么使用
URL標(biāo)題:http://chinadenli.net/article8/jijcip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁(yè)設(shè)計(jì)公司靜態(tài)網(wǎng)站Google網(wǎng)站營(yíng)銷關(guān)鍵詞優(yōu)化建站公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司