• ElasticSearch常用插件整理


    说明

    1)    素材来自互联网,针对部分插件,已通过实际操作验证,进而整理、总结形成。

    (感谢度娘、感谢互联网、感谢开源世界里的大牛)

    2)    如有谬误,请及时指出。

    (咸鱼翻身,Email:defineconst@163.com,会不断更新本文档)

    3)    联系本人获取配置好的Elasticsearch1.6.0集成安装包。

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

    5)    客户端地址:http://www.searchtech.pro/elasticsearch-clients

     

    备注

    Elasticsearch扩展性非常好,有很多官方和第三方开发的插件,下面以安装、分词、同步、数据传输、脚本支持、站点、其它、客户端这几个类别进行划分:

    一、           安装ElasticSearch

    1.   安装——验证

    1)下载elasticsearch-1.6.0,解压,运行inelasticsearch.bat (Windwos)

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

    2)进入http://localhost:9200/ 如下图


    安装成功!

     

    2.   插件——head

    elasticsearch-head是一个elasticsearch的集群管理工具,它是完全由html5编写的独立网页程序,可以通过插件把它集成到es,很方便对es进行各种操作的客户端。 (作者 Ben Birch)

    安装命令:in>plugin-install mobz/elasticsearch-head

    安装完成后plugins目录下会有head的文件夹。

    进入http://localhost:9200/_plugin/head/ 如下图

     

     

    3.   插件——bigdesk

    bigdesk是elasticsearch的一个集群监控工具,可以通过它来查看es集群的各种状态,如:cpu、内存使用情况,索引数据、搜索情况,http连接数等。 (作者 Lukáš Vlček)

    安装命令:in>plugin-install lukas-vlcek/bigdesk

    进入http://localhost:9200/_plugin/bigdesk/ 如下图

    1)nodes

    2)clustor

    二、           分词插件

    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.0pluginsanalysis-ik

    3)    拷贝elasticsearch-analysis-ik-1.4.0.zip并解压缩

    4)    拷贝ik目录至elasticsearch-1.6.0configik

    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(" ");

                }

                sb.Append(item + " ");

            }

     

            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进行集成编译,具体过程可以咨询彭健和我。

    具体操作如下图所示:

    三、           同步插件

    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的集群功能,未能成功,下周再试】

    四、           数据传输插件

    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:暂不需要未经测试】

    五、           脚本插件

    1.   插件列表

    Pythonlanguage Plugin (作者 elasticsearch 团队)

    简介:python脚本支持

     

    JavaScriptlanguage Plugin (作者 elasticsearch 团队)

    简介:javascript脚本支持

     

    Groovylang Plugin (作者 elasticsearch 团队)

    简介:groovy脚本支持

     

    ClojureLanguage Plugin (作者 Kevin Downey)

    简介:clojure脚本支持

    2.   插件——

     

    六、           站点插件

    1.   插件列表

    Paramedic Plugin (作者 Karel Minařík)

    简介:es监控插件

     

    SegmentSpyPlugin (作者 ZacharyTong)

    简介:查看es索引segment状态的插件

     

    InquisitorPlugin (作者 ZacharyTong)

    简介:这个插件主要用来调试你的查询。

     

     

    2.   插件——Mavel

    Cd D:SooilElasticsearchelasticsearch-1.6.0in

    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

    七、           其它插件

    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

    八、           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

     

     

    九、           总结

    1.   插件工具集成访问

    由于插件众多,需要记忆的地址也非常多,根据技术大牛Medcl的1.0.0的集成安装包的启示,拷贝了其开发的组件,访问地址如下:

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

     

     

    2.   其他插件安装

    a)        Attachments安装

    Cd D:SooilElasticsearchelasticsearch-1.6.0-selfin

    D:

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

     

    b)        Paramedic安装

    plugin -install karmi/elasticsearch-paramedic

    正因为当初对未来做了太多的憧憬,所以对现在的自己尤其失望。生命中曾经有过的所有灿烂,终究都需要用寂寞来偿还。
  • 相关阅读:
    基于java容器注解---基于泛型的自动装配
    mininet+floodlight搭建sdn环境并创建简单topo
    Bean装配之@Autowired注解
    Linux常用命令
    Bean利用Resource接口获取资源的几种方式
    MYSQL分页优化查询
    MYSQL统计和识别重复值
    MYSQL统计和识别重复值
    MYSQL处理数据重复值
    MYSQL处理数据重复值
  • 原文地址:https://www.cnblogs.com/candlia/p/11920257.html
Copyright © 2020-2023  润新知