ElasticSearch經常使用插件整理

說明

1)    素材來自互聯網,針對部分插件,已經過實際操做驗證,進而整理、總結造成。javascript

(感謝度娘、感謝互聯網、感謝開源世界裏的大牛)html

2)    若有謬誤,請及時指出。html5

(鹹魚翻身,Email:defineconst@163.com,會不斷更新本文檔)java

3)    聯繫本人獲取配置好的Elasticsearch1.6.0集成安裝包。node

4)    插件地址:http://www.searchtech.pro/elasticsearch-pluginspython

5)    客戶端地址:http://www.searchtech.pro/elasticsearch-clientsgit

 

備註

Elasticsearch擴展性很是好,有不少官方和第三方開發的插件,下面以安裝、分詞、同步、數據傳輸、腳本支持、站點、其它、客戶端這幾個類別進行劃分:github

1、           安裝ElasticSearch

1.   安裝——驗證

1)下載elasticsearch-1.6.0,解壓,運行\bin\elasticsearch.bat (Windwos)web

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

2)進入http://localhost:9200/ 以下圖


安裝成功!

 

2.   插件——head

elasticsearch-head是一個elasticsearch的集羣管理工具,它是徹底由html5編寫的獨立網頁程序,能夠經過插件把它集成到es,很方便對es進行各類操做的客戶端。 (做者 Ben Birch)

安裝命令:\bin>plugin-install mobz/elasticsearch-head

安裝完成後\plugins目錄下會有head的文件夾。

進入http://localhost:9200/_plugin/head/ 以下圖

 

 

3.   插件——bigdesk

bigdesk是elasticsearch的一個集羣監控工具,能夠經過它來查看es集羣的各類狀態,如:cpu、內存使用狀況,索引數據、搜索狀況,http鏈接數等。 (做者 Lukáš Vlček)

安裝命令:\bin>plugin-install lukas-vlcek/bigdesk

進入http://localhost:9200/_plugin/bigdesk/ 以下圖

1)nodes

2)clustor

2、           分詞插件

1.   插件列表

ComboAnalysis Plugin (做者 Olivier Favre, Yakaz)

簡介:組合分詞器,能夠把多個分詞器的結果組合在一塊兒。

 

SmartChinese Analysis Plugin (做者 elasticsearch 團隊)

簡介:lucene默認的中文分詞器

 

ICU Analysisplugin (做者 elasticsearch 團隊)

簡介:lucene自帶的ICU分詞,ICU是一套穩定、成熟、功能強大、輕便易用和跨平臺支持Unicode 的開發包。

 

Stempel(Polish) Analysis plugin (做者 elasticsearch 團隊)

簡介:法文分詞器

 

IK Analysis Plugin (做者 Medcl)

簡介:大名鼎鼎的ik分詞,都懂的!

 

Mmseg Analysis Plugin (做者 Medcl)

簡介:mmseg中文分詞

 

HunspellAnalysis Plugin (做者 Jörg Prante)

簡介:lucene自帶的Hunspell模塊

 

Japanese(Kuromoji) Analysis plugin (做者 elasticsearch 團隊).

簡介:日文分詞器

 

JapaneseAnalysis plugin (做者 suguru).

簡介:日文分詞器

 

Russianand English Morphological Analysis Plugin (做者 Igor Motov)

簡介:俄文英文分詞器

 

PinyinAnalysis Plugin (做者 Medcl)

簡介:拼音分詞器

 

String2IntegerAnalysis Plugin (做者 Medcl)

簡介:字符串轉整型工具。主要用在facet這個功能上,若是facet的field的值是字符串的話,計算起來比較耗資源。能夠把字符串映射成整型,對整型進行facet操做要比對字符串的快不少。

 

2.   IK分詞插件安裝

1)    下載並編譯:elasticsearch-analysis-ik-1.4.0生成jar包和rar壓縮包

2)    建立:elasticsearch-1.6.0\plugins\analysis-ik

3)    拷貝elasticsearch-analysis-ik-1.4.0.zip並解壓縮

4)    拷貝ik目錄至elasticsearch-1.6.0\config\ik

5)    配置遠程數據加載地址:IKAnalyzer.cfg.xml

6)    遠程訪問地址:

<entry key="remote_ext_dict">http://192.168.1.151:85/ESDynamicDict.aspx</entry>

ESDynamicDict.aspx樣例代碼以下:

string eTag = this.Request["If-None-Match"];

    long modified = String.IsNullOrEmpty(Request["If-Modified-Since"]) ? -1 : Convert.ToInt64(Request["If-Modified-Since"]);

 

    //long modified = System.DateTime.Now.Ticks;

 

    if (null == modified || -1 == modified)

    {

        //若是沒有,則使用當前時間 

        modified = System.DateTime.Now.Ticks;

    }

 

    List<string> wordList = new List<string>();

 

    wordList.Add("比亞迪");

    wordList.Add("華爲");

    wordList.Add("中興");

 

    wordList.Add("勘探概況回顧");

    wordList.Add("可靠性分析");

    wordList.Add("構造圈閉識別");

    wordList.Add("非構造圈閉識別");

    wordList.Add("圈閉形態描述");

    wordList.Add("圈閉條件分析");

    wordList.Add("油氣源特徵分析");

    wordList.Add("儲層特徵研究");

    wordList.Add("儲層綜合柱狀圖");

    wordList.Add("儲層物性統計表");

    wordList.Add("儲層岩石學特徵圖");

 

    wordList.Add("錒");

    wordList.Add("ACTINIUM");

    wordList.Add("砹");

    wordList.Add("ASTATINE");

    wordList.Add("氨");

    wordList.Add("AMMONIA");

    wordList.Add("氨基磺酸");

    wordList.Add("SULFAMIC ACID");

    wordList.Add("氨基甲酸乙酯");

    wordList.Add("ETHYL CARBAMATE");

    wordList.Add("氨基甲酸酯");

    wordList.Add("CARBAMATE");

    wordList.Add("氨基氰");

    wordList.Add("CYANAMIDE");

    wordList.Add("氨基酸");

    wordList.Add("AMINO ACID");

    wordList.Add("氨基羧酸");

    wordList.Add("AMINOCARBOXYLIC ACID");

    wordList.Add("氨基糖");

    wordList.Add("AMINO SUGAR");

 

    wordList.Add("胺鹽");

    wordList.Add("AMINE SALT");

    wordList.Add("半乳甘露聚糖");

    wordList.Add("AMINO SUGAR");

 

 

 

    wordList.Add("苯胺");

    wordList.Add("ANILINE");

    wordList.Add("苯並嵌二萘");

    wordList.Add("BENZOPYRENE");

 

    wordList.Add("苯並三唑");

    wordList.Add("BENZOTRIAZOLE");

    wordList.Add("半乳甘露聚糖");

    wordList.Add("AMINO SUGAR");

 

    String oldEtag = wordList.Count + "";

 

    StringBuilder sb = new StringBuilder();

    if (oldEtag != eTag)

    {

        foreach (var item in wordList)

        {

            if (String.IsNullOrEmpty(sb.ToString()))

            {

                sb.Append("\r\n");

            }

            sb.Append(item + "\r\n");

        }

 

        String result = "";

 

        result = sb.ToString();

 

        Response.Clear();

        Response.AddHeader("ETags", wordList.Count.ToString());//Response.Headers["Last-Modified"]

        Response.AddHeader("Last-Modified", wordList.Count.ToString());//Response.Headers["Last-Modified"]

        Response.Write(result);

        Response.End();

    }

}

 

使用MVN進行集成編譯,具體過程能夠諮詢彭健和我。

具體操做以下圖所示:

3、           同步插件

1.   插件列表

CouchDBRiver Plugin (做者 elasticsearch 團隊)

簡介:CouchDB和elasticsearch的同步插件

 

WikipediaRiver Plugin (做者 elasticsearch 團隊)

簡介:wikipedia文件讀取插件。wikipedia是維基百科的一個離線庫,不按期發佈最新數據,是以xml形式發佈的。這個river讀取這個文件來建索引。

 

TwitterRiver Plugin (做者 elasticsearch 團隊)

簡介:twitter的同步插件,能夠同步你twitter上的微博。

 

RabbitMQRiver Plugin (做者 elasticsearch 團隊)

簡介:rabbitmq同步插件,讀取rabbitmq上的隊列信息並索引。

 

RSS River Plugin (做者 David Pilato)

簡介:按期索引指定一個或多個RSS源的數據。

 

MongoDBRiver Plugin (做者 Richard Louapre)

簡介:mongodb同步插件,mongodb必須搭成副本集的模式,由於這個插件的原理是經過按期讀取mongodb中的oplog來同步數據。

 

OpenArchives Initiative (OAI) River Plugin (做者 Jörg Prante)

簡介:能夠索引oai數據提供者提供的數據。

 

St9River Plugin (做者 Sunny Gleason)

簡介:能夠索引索引st9數據(st9是神馬?囧!!!)

 

SofaRiver Plugin (做者 adamlofts)

簡介:這個插件能夠把多個CouchDB的數據庫同步到同一個es索引中。

 

JDBC RiverPlugin (做者 JörgPrante)

簡介:關係型數據庫的同步插件

 

FileSystem River Plugin (做者 David Pilato)

簡介:本地文件系統文件同步插件,使用方法是指定一個本地目錄路徑,es會按期掃描索引該目錄下的文件。

 

LDAP River Plugin (做者 Tanguy Leroux)

簡介:索引LDAP目錄下的文件數據。

 

Dropbox River Plugin (做者 David Pilato)

簡介:索引dropbox網盤上的文件。經過oauth協議來調用dropbox上的api建索引。

 

ActiveMQRiver Plugin (做者 Dominik Dorn)

簡介:activemq隊列的同步插件,和以前rabbitmq的相似

 

SolrRiver Plugin (做者 Luca Cavanna)

簡介:solr同步插件,能夠把solr裏面的索引同步到es

 

CSV RiverPlugin (做者 MartinBednar)

簡介:經過指定目錄地址來索引csv文件。

 

2.   插件——MongoDB River

插件地址:https://github.com/richardwilly98/elasticsearch-river-mongodb

 

插件安裝:Plugin--installcom.github.richardwilly98.elasticsearch/elasticsearch-river-mongodb/2.0.9

 

備用:Plugin–install –url https://github.com/downloads/richardwilly98/elasticsearch-river-mongodb/elasticsearch-river-mongodb-2.0.9.zip-install river-mongodb

 

【todo:須要配置MongoDB的集羣功能,未能成功,下週再試】

4、           數據傳輸插件

1.   插件列表

Servlettransport (做者 elasticsearch 團隊)

簡介:Servletrest插件,經過servlet來封裝rest接口。

 

Memcachedtransport plugin (做者 elasticsearch 團隊)

簡介:本插件能夠經過memcached協議進行rest接口的調用。注意:這裏不是使用memcache做爲es的緩存。

 

ThriftTransport (做者 elasticsearch 團隊)

簡介:使用thrift進行數據傳輸。

 

ZeroMQ transport layer plugin (做者 Tanguy Leroux)

簡介:使用zeromq進rest接口的調用。

 

Jetty HTTP transportplugin (做者 SonianInc.)

簡介:使用jetty來提供http rest接口。默認是使用netty。這個插件的好處是能夠對http接口進行一些權限的設置。

 

2.   插件——

【todo:暫不須要未經測試】

5、           腳本插件

1.   插件列表

Pythonlanguage Plugin (做者 elasticsearch 團隊)

簡介:python腳本支持

 

JavaScriptlanguage Plugin (做者 elasticsearch 團隊)

簡介:javascript腳本支持

 

Groovylang Plugin (做者 elasticsearch 團隊)

簡介:groovy腳本支持

 

ClojureLanguage Plugin (做者 Kevin Downey)

簡介:clojure腳本支持

2.   插件——

 

6、           站點插件

1.   插件列表

Paramedic Plugin (做者 Karel Minařík)

簡介:es監控插件

 

SegmentSpyPlugin (做者 ZacharyTong)

簡介:查看es索引segment狀態的插件

 

InquisitorPlugin (做者 ZacharyTong)

簡介:這個插件主要用來調試你的查詢。

 

 

2.   插件——Mavel

Cd D:\Sooil\Elasticsearch\elasticsearch-1.6.0\bin

D:

 

Plugin –install elasticsearch/marvel/latest

 

 

注意:Marvel因爲其功能強大,爲收費產品。

訪問地址以下:

http://192.168.1.184:9200/_plugin/marvel

http://192.168.1.184:9200/_plugin/marvel/sense/index.html

7、           其它插件

1.   插件列表

MapperAttachments Type plugin (做者 elasticsearch 團隊)

簡介:附件類型插件,經過tika庫把各類類型的文件格式解析成字符串。

 

HadoopPlugin (做者 elasticsearchteam)

簡介:hadoop和elasticsearch的集成插件,能夠經過hadoop的mapreduce算法來並行創建索引,同時支持cascading,hive和pig等框架。

 

AWS CloudPlugin (做者 elasticsearch 團隊)

簡介:elasticsearch與amazon web services的集成。

 

ElasticSearchMock Solr Plugin (做者 Matt Weber)

簡介:elasticsearch的solr api接口。用了這個插件可使用solr的api來調用es,直接用solrj就能夠調用es。比較適用於從solr轉es時暫時過分。

 

SuggesterPlugin (做者 AlexanderReelsen)

簡介:es 搜索提示功能插件,不過es0.9版本後自帶了這個功能,

 

ElasticSearchPartialUpdate Plugin (做者 Medcl)

簡介:elasticsearch的部分更新插件。

 

ZooKeeperDiscovery Plugin (做者 Sonian Inc.)

簡介:經過zookeeper管理集羣的插件。經過這個插件,es的分佈式架構和solrcloud類似。

 

ElasticSearchChanges Plugin (做者 Thomas Peuss)

簡介:elasticsearch索引操做記錄插件。經過這個插件能夠查看用戶對索引的增刪改操做。

 

ElasticSearch View Plugin (做者 Tanguy Leroux)

簡介:這個插件能夠把es的文檔以html,xml或text的方式顯示出來,它也能夠經過查詢生成web頁面。

 

ElasticSearchNew Relic Plugin (做者 Vinicius Carvalho)

簡介:elasticsearch和newrelic的集成插件。newrelica是一個性能監控工具。這個插件會把節點的狀態數據傳到newrelic的帳號上。

 

2.   插件——

Todo:產品中須要作測試集成的插件:

ElasticSearchChanges Plugin

MapperAttachments Type plugin

8、           Elasticsearch客戶端

1.   客戶端列表

1)     Perl

ElasticSearch.pm: Perl客戶端

2)    Python

pyes: Python客戶端
pyelasticsearch: Python客戶端
ESClient:一個輕量級Python客戶端
rawes: Python客戶端
elasticutils: Python客戶端

3)    Ruby

Tire:Ruby API & DSL, with ActiveRecord/ActiveModel integration
rubberband: Ruby客戶端
stretcher: Ruby客戶端
elastic_searchable: Ruby客戶端 + Rails整合

4)    PHP

Elastica: PHP客戶端
elasticsearch PHP客戶端
Sherlock: PHP客戶端

5)    Java

Jest: Java Rest客戶端

6)    Javascript

Elastic.js: JavaScript實現Query DSL和主要API讀取

7)    .Net

PlainElastic.Net: .NET客戶端
NEST: .NET客戶端
ElasticSearch.NET: .NET客戶端

8)    Scala

scalastic: Scala客戶端
esclient:瘦Scala客戶端

9)    Clojure

Elastisch: Clojure客戶端

10)             Go

elastigo: Go客戶端

11)             Erlang

erlastic_search: Erlang客戶端
Tirexs:一個基於Elixir的API/DSL,能夠在純Erlang環境中使用

12)             EventMachine

em-elasticsearch: eventmachine的elasticsearch庫

13)             Linux Command Line

es2unix:經過unix命令行調用elasticsearchapi

 

 

9、           總結

1.   插件工具集成訪問

因爲插件衆多,須要記憶的地址也很是多,根據技術大牛Medcl的1.0.0的集成安裝包的啓示,拷貝了其開發的組件,訪問地址以下:

http://192.168.1.184:9200/_plugin/rtf/

 

 

2.   其餘插件安裝

a)        Attachments安裝

Cd D:\Sooil\Elasticsearch\elasticsearch-1.6.0-self\bin

D:

Plugin -install elasticsearch/elasticsearch-mapper-attachments/2.0.0

 

b)        Paramedic安裝

plugin -install karmi/elasticsearch-paramedic

相關文章
相關標籤/搜索