1) 素材來自互聯網,針對部分插件,已經過實際操做驗證,進而整理、總結造成。javascript
(感謝度娘、感謝互聯網、感謝開源世界裏的大牛)html
2) 若有謬誤,請及時指出。html5
(鹹魚翻身,Email:defineconst@163.com,會不斷更新本文檔)java
3) 聯繫本人獲取配置好的Elasticsearch1.6.0集成安裝包。node
4) 插件地址:http://www.searchtech.pro/elasticsearch-plugins。python
5) 客戶端地址:http://www.searchtech.pro/elasticsearch-clients。git
Elasticsearch擴展性很是好,有不少官方和第三方開發的插件,下面以安裝、分詞、同步、數據傳輸、腳本支持、站點、其它、客戶端這幾個類別進行劃分:github
1)下載elasticsearch-1.6.0,解壓,運行\bin\elasticsearch.bat (Windwos)web
下載地址:https://www.elastic.co/downloads/elasticsearch算法
2)進入http://localhost:9200/ 以下圖
安裝成功!
elasticsearch-head是一個elasticsearch的集羣管理工具,它是徹底由html5編寫的獨立網頁程序,能夠經過插件把它集成到es,很方便對es進行各類操做的客戶端。 (做者 Ben Birch)。
安裝命令:\bin>plugin-install mobz/elasticsearch-head
安裝完成後\plugins目錄下會有head的文件夾。
進入http://localhost:9200/_plugin/head/ 以下圖
bigdesk是elasticsearch的一個集羣監控工具,能夠經過它來查看es集羣的各類狀態,如:cpu、內存使用狀況,索引數據、搜索狀況,http鏈接數等。 (做者 Lukáš Vlček)
安裝命令:\bin>plugin-install lukas-vlcek/bigdesk
進入http://localhost:9200/_plugin/bigdesk/ 以下圖
1)nodes
2)clustor
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操做要比對字符串的快不少。
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進行集成編譯,具體過程能夠諮詢彭健和我。
具體操做以下圖所示:
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文件。
插件地址: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的集羣功能,未能成功,下週再試】
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接口進行一些權限的設置。
【todo:暫不須要未經測試】
Pythonlanguage Plugin (做者 elasticsearch 團隊)
簡介:python腳本支持
JavaScriptlanguage Plugin (做者 elasticsearch 團隊)
簡介:javascript腳本支持
Groovylang Plugin (做者 elasticsearch 團隊)
簡介:groovy腳本支持
ClojureLanguage Plugin (做者 Kevin Downey)
簡介:clojure腳本支持
Paramedic Plugin (做者 Karel Minařík)
簡介:es監控插件
SegmentSpyPlugin (做者 ZacharyTong)
簡介:查看es索引segment狀態的插件
InquisitorPlugin (做者 ZacharyTong)
簡介:這個插件主要用來調試你的查詢。
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
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的帳號上。
Todo:產品中須要作測試集成的插件:
ElasticSearch.pm: Perl客戶端
pyes: Python客戶端
pyelasticsearch: Python客戶端
ESClient:一個輕量級Python客戶端
rawes: Python客戶端
elasticutils: Python客戶端
Tire:Ruby API & DSL, with ActiveRecord/ActiveModel integration
rubberband: Ruby客戶端
stretcher: Ruby客戶端
elastic_searchable: Ruby客戶端 + Rails整合
Elastica: PHP客戶端
elasticsearch PHP客戶端
Sherlock: PHP客戶端
Jest: Java Rest客戶端
Elastic.js: JavaScript實現Query DSL和主要API讀取
PlainElastic.Net: .NET客戶端
NEST: .NET客戶端
ElasticSearch.NET: .NET客戶端
scalastic: Scala客戶端
esclient:瘦Scala客戶端
Elastisch: Clojure客戶端
elastigo: Go客戶端
erlastic_search: Erlang客戶端
Tirexs:一個基於Elixir的API/DSL,能夠在純Erlang環境中使用
em-elasticsearch: eventmachine的elasticsearch庫
es2unix:經過unix命令行調用elasticsearchapi
因爲插件衆多,須要記憶的地址也很是多,根據技術大牛Medcl的1.0.0的集成安裝包的啓示,拷貝了其開發的組件,訪問地址以下:
http://192.168.1.184:9200/_plugin/rtf/
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