欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

安裝ElasticSearch搜索工具并配置Python驅(qū)動的方法

 更新時間:2015年12月22日 15:01:02   投稿:goldensun  
這篇文章主要介紹了安裝ElasticSearch搜索工具并配置Python驅(qū)動的方法,文中還介紹了其與Kibana數(shù)據(jù)顯示客戶端的配合使用,需要的朋友可以參考下

ElasticSearch是一個基于Lucene的搜索服務(wù)器。它提供了一個分布式多用戶能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java開發(fā)的,并作為Apache許可條款下的開放源碼發(fā)布,是第二流行的企業(yè)搜索引擎。設(shè)計用于云計算中,能夠達到實時搜索,穩(wěn)定,可靠,快速,安裝使用方便。
我們建立一個網(wǎng)站或應(yīng)用程序,并要添加搜索功能,令我們受打擊的是:搜索工作是很難的。我們希望我們的搜索解決方案要快,我們希望有一個零配置和一個完全免費的搜索模式,我們希望能夠簡單地使用JSON通過HTTP的索引數(shù)據(jù),我們希望我們的搜索服務(wù)器始終可用,我們希望能夠一臺開始并擴展到數(shù)百,我們要實時搜索,我們要簡單的多租戶,我們希望建立一個云的解決方案。Elasticsearch旨在解決所有這些問題和更多的問題。
Elasticsearch 是開源搜索平臺的新成員,實時數(shù)據(jù)分析的神器,發(fā)展迅猛,基于 Lucene、RESTful、分布式、面向云計算設(shè)計、實時搜索、全文搜索、穩(wěn)定、高可靠、可擴展、安裝+使用方便,介紹都說的很好聽,好不好用拿出來遛一遛。
做了個簡單測試,在兩臺完全一樣的虛擬機上,2000萬條左右數(shù)據(jù),Elasticsearch 插入數(shù)據(jù)速度比 MongoDB 慢很多(可以忍受),但是搜索/查詢速度快10倍以上,這只是單機情況,多機集群情況下 Elasticsearch 表現(xiàn)更好一些。以下安裝步驟在 Ubuntu Server 14.04 LTS 上完成。

安裝 Elasticsearch
升級系統(tǒng)后安裝 Oracle Java 7,既然 Elasticsearch 官方推薦使用 Oracle JDK 7 就不要嘗試 JDK 8 和 OpenJDK 了:

$ sudo apt-get update
$ sudo apt-get upgrade
 
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
 
$ sudo apt-get install oracle-java7-installer

加入 Elasticsearch 官方源后安裝 elasticsearch:

$ wget -O - http://packages.elasticsearch.org/GPG-KEY-elasticsearch | apt-key add -
$ sudo echo "deb http://packages.elasticsearch.org/elasticsearch/1.1/debian stable main" >> /etc/apt/sources.list
 
$ sudo apt-get update
$ sudo apt-get install elasticsearch

加入到系統(tǒng)啟動文件并啟動 elasticsearch 服務(wù),用 curl 測試一下安裝是否成功:

$ sudo update-rc.d elasticsearch defaults 95 1
 
$ sudo /etc/init.d/elasticsearch start
 
$ curl -X GET 'http://localhost:9200'
{
 "status" : 200,
 "name" : "Fer-de-Lance",
 "version" : {
  "number" : "1.1.1",
  "build_hash" : "f1585f096d3f3985e73456debdc1a0745f512bbc",
  "build_timestamp" : "2014-04-16T14:27:12Z",
  "build_snapshot" : false,
  "lucene_version" : "4.7"
 },
 "tagline" : "You Know, for Search"
}

Elasticsearch 的集群和數(shù)據(jù)管理界面 Marvel 非常贊,可惜只對開發(fā)環(huán)境免費,如果這個工具也免費就無敵了,安裝很簡單,完成后重啟服務(wù)訪問 http://192.168.2.172:9200/_plugin/marvel/ 就可以看到界面:

$ sudo /usr/share/elasticsearch/bin/plugin -i elasticsearch/marvel/latest
 
$ sudo /etc/init.d/elasticsearch restart
 * Stopping Elasticsearch Server                      [ OK ]
 * Starting Elasticsearch Server                      [ OK ]

20151222145816902.png (550×473)

安裝 Python 客戶端驅(qū)動
和 MongoDB 一樣,我們一般用程序和 Elasticsearch 交互,Elasticsearch 也支持多種語言的客戶端驅(qū)動,這里僅安裝 Python 驅(qū)動,其他語言可以參考官方文檔。

$ sudo apt-get install python-pip
$ sudo pip install elasticsearch

寫個簡單程序把 gene_info.txt 的數(shù)據(jù)導(dǎo)入到 Elasticsearch:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
import os, os.path, sys, re
import csv, time, string
from datetime import datetime
from elasticsearch import Elasticsearch
 
def import_to_db():
  data = csv.reader(open('gene_info.txt', 'rb'), delimiter='\t')
  data.next()
 
  es = Elasticsearch()
  for row in data:
    doc = {
      'tax_id': row[0],
      'GeneID': row[1],
      'Symbol': row[2],
      'LocusTag': row[3],
      'Synonyms': row[4],
      'dbXrefs': row[5],
      'chromosome': row[6],
      'map_location': row[7],
      'description': row[8],
      'type_of_gene': row[9],
      'Symbol_from_nomenclature_authority': row[10],
      'Full_name_from_nomenclature_authority': row[11],
      'Nomenclature_status': row[12],
      'Other_designations': row[13],
      'Modification_date': row[14]
    }
    res = es.index(index="gene", doc_type='gene_info', body=doc)
 
def main():
  import_to_db()
 
if __name__ == "__main__":
  main()

Kibana 是一個功能強大的數(shù)據(jù)顯示客戶端,通過插件方式和 Elasticsearch 集成在一起,安裝很容易,下載解壓就可以了,然后重啟 Elasticsearch 服務(wù)訪問 http://192.168.2.172:9200/_plugin/kibana/ 就能看到界面:

$ wget https://download.elasticsearch.org/kibana/kibana/kibana-3.0.1.tar.gz
$ tar zxvf kibana-3.0.1.tar.gz
$ sudo mv kibana-3.0.1 /usr/share/elasticsearch/plugins/_site
$ sudo /etc/init.d/elasticsearch restart

20151222145853839.png (550×473)

相關(guān)文章

  • matplotlib之pyplot模塊添加文本、注解(text和annotate)

    matplotlib之pyplot模塊添加文本、注解(text和annotate)

    matplotlib是python最著名的繪圖庫,它提供了一整套和matlab相似的命令A(yù)PI,十分適合交互式地行制圖,下面這篇文章主要給大家介紹了關(guān)于matplotlib之pyplot模塊添加文本、注解(text和annotate)的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • Python入門教程之運算符與控制流

    Python入門教程之運算符與控制流

    本文主要針對 Python 的運算符和控制流進行講解,這里只介紹 Python 中比較獨特的部分,和其他語言類似的東西,比如加減乘除運算符就不在介紹。由于這篇文章是入門級別的文章,高手可直接跳過。
    2016-08-08
  • 詳解Python發(fā)送email的三種方式

    詳解Python發(fā)送email的三種方式

    這篇文章主要介紹了詳解Python發(fā)送email的三種方式,Python發(fā)送email的三種方式,分別為使用登錄郵件服務(wù)器、使用smtp服務(wù)、調(diào)用sendmail命令來發(fā)送三種方法,非常具有實用價值,需要的朋友可以參考下
    2018-10-10
  • Python制作進度條的幾種方法

    Python制作進度條的幾種方法

    如果你之前沒用過進度條,八成是覺得它會增加不必要的復(fù)雜性或者很難維護,其實不然。要加一個進度條其實只需要幾行代碼,快跟隨小編一起學習學習吧
    2022-12-12
  • Pytest+Request+Allure+Jenkins實現(xiàn)接口自動化

    Pytest+Request+Allure+Jenkins實現(xiàn)接口自動化

    這篇文章介紹了Pytest+Request+Allure+Jenkins實現(xiàn)接口自動化的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • CentOS 7 安裝python3.7.1的方法及注意事項

    CentOS 7 安裝python3.7.1的方法及注意事項

    這篇文章主要介紹了CentOS 7 安裝python3.7.1的方法,文中給大家提到了注意事項,需要的朋友可以參考下
    2018-11-11
  • Python求正態(tài)分布曲線下面積實例

    Python求正態(tài)分布曲線下面積實例

    今天小編就為大家分享一篇Python求正態(tài)分布曲線下面積實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Python中逗號的三種作用實例分析

    Python中逗號的三種作用實例分析

    這篇文章主要介紹了Python中逗號的三種作用,實例分析了Python中的逗號在類型轉(zhuǎn)換與打印輸出時的使用技巧,需要的朋友可以參考下
    2015-06-06
  • RuntimeError:CUDA?out?of?memory多種場景下的解決方案

    RuntimeError:CUDA?out?of?memory多種場景下的解決方案

    若遇到RuntimeError:?CUDA?out?of?memory錯誤,通常意味著GPU內(nèi)存不足以處理當前的計算需求,本文就來介紹一下多種場景下的解決方案,具有一定的參考價值,感興趣的可以了解一下
    2024-02-02
  • Python實現(xiàn)的將文件每一列寫入列表功能示例【測試可用】

    Python實現(xiàn)的將文件每一列寫入列表功能示例【測試可用】

    這篇文章主要介紹了Python實現(xiàn)的將文件每一列寫入列表功能,涉及Python文件讀取、遍歷、序列追加、賦值等相關(guān)操作技巧,需要的朋友可以參考下
    2018-03-03

最新評論