ElasticSearch插件集

kl 发表了文章 • 0 个评论 • 1768 次浏览 • 2016-03-30 18:07 • 来自相关话题

ElasticSearch的很多功能都是官方或第三方基于ElasticSearch的AbstractPlugin类实现的插件来提供的,所以,在里里记录下一些常用的及实用的插件地址,以备不时之需

分词插件

Combo Analysis Plugin (作者 Olivier Favre, Yakaz)

简介:组合分词器,可以把多个分词器的结果组合在一起。

Smart Chinese Analysis Plugin (作者 elasticsearch 团队)

简介:lucene默认的中文分词器

ICU Analysis plugin (作者 elasticsearch 团队)

简介:lucene自带的ICU分词,ICU是一套稳定、成熟、功能强大、轻便易用和跨平台支持Unicode 的开发包。

Stempel (Polish) Analysis plugin (作者 elasticsearch 团队)

简介:法文分词器

IK Analysis Plugin (作者 Medcl)

简介:大名鼎鼎的ik分词,都懂的!

Mmseg Analysis Plugin (作者 Medcl)

简介:mmseg中文分词

Hunspell Analysis Plugin (作者 Jörg Prante)

简介:lucene自带的Hunspell模块

Japanese (Kuromoji) Analysis plugin (作者 elasticsearch 团队).

简介:日文分词器

Japanese Analysis plugin (作者 suguru).

简介:日文分词器

Russian and English Morphological Analysis Plugin (作者 Igor Motov)

简介:俄文英文分词器

Pinyin Analysis Plugin (作者 Medcl)

简介:拼音分词器

String2Integer Analysis Plugin (作者 Medcl)

简介:字符串转整型工具。主要用在facet这个功能上,如果facet的field的值是字符串的话,计算起来比较耗资源。可以把字符串映射成整型,对整型进行facet操作要比对字符串的快很多。

同步插件

CouchDB River Plugin (作者 elasticsearch 团队)

简介:CouchDB和elasticsearch的同步插件

Wikipedia River Plugin (作者 elasticsearch 团队)

简介:wikipedia文件读取插件。wikipedia是维基百科的一个离线库,不定期发布最新数据,是以xml形式发布的。这个river读取这个文件来建索引。

Twitter River Plugin (作者 elasticsearch 团队)

简介:twitter的同步插件,可以同步你twitter上的微博。

RabbitMQ River Plugin (作者 elasticsearch 团队)

简介:rabbitmq同步插件,读取rabbitmq上的队列信息并索引。

RSS River Plugin (作者 David Pilato)

简介:定期索引指定一个或多个RSS源的数据。

MongoDB River Plugin (作者 Richard Louapre)

简介:mongodb同步插件,mongodb必须搭成副本集的模式,因为这个插件的原理是通过定期读取mongodb中的oplog来同步数据。

Open Archives Initiative (OAI) River Plugin (作者 Jörg Prante)

简介:可以索引oai数据提供者提供的数据。

Sofa River Plugin (作者 adamlofts)

简介:这个插件可以把多个CouchDB的数据库同步到同一个es索引中。

JDBC River Plugin (作者 Jörg Prante)

简介:关系型数据库的同步插件

FileSystem River Plugin (作者 David Pilato)

简介:本地文件系统文件同步插件,使用方法是指定一个本地目录路径,es会定期扫描索引该目录下的文件。

LDAP River Plugin (作者 Tanguy Leroux)

简介:索引LDAP目录下的文件数据。

Dropbox River Plugin (作者 David Pilato)

简介:索引dropbox网盘上的文件。通过oauth协议来调用dropbox上的api建索引。

ActiveMQ River Plugin (作者 Dominik Dorn)

简介:activemq队列的同步插件,和之前rabbitmq的类似

Solr River Plugin (作者 Luca Cavanna)

简介:solr同步插件,可以把solr里面的索引同步到es

CSV River Plugin (作者 Martin Bednar)

简介:通过指定目录地址来索引csv文件。

数据传输插件

Servlet transport (作者 elasticsearch 团队)

简介:Servlet rest插件,通过servlet来封装rest接口。

Memcached transport plugin (作者 elasticsearch 团队)

简介:本插件可以通过memcached协议进行rest接口的调用。注意:这里不是使用memcache作为es的缓存。

Thrift Transport (作者 elasticsearch 团队)

简介:使用thrift进行数据传输。

ZeroMQ transport layer plugin (作者 Tanguy Leroux)

简介:使用zeromq进rest接口的调用。

Jetty HTTP transport plugin (作者 Sonian Inc.)

简介:使用jetty来提供http rest接口。默认是使用netty。这个插件的好处是可以对http接口进行一些权限的设置。

脚本插件

Python language Plugin (作者 elasticsearch 团队)

简介:python脚本支持

JavaScript language Plugin (作者 elasticsearch 团队)

简介:javascript脚本支持

Groovy lang Plugin (作者 elasticsearch 团队)

简介:groovy脚本支持

Clojure Language Plugin (作者 Kevin Downey)

简介:clojure脚本支持

站点插件(以网页形式展现)

BigDesk Plugin (作者 Lukáš Vlček)

简介:监控es状态的插件,推荐!

Elasticsearch Head Plugin (作者 Ben Birch)

简介:很方便对es进行各种操作的客户端。

Paramedic Plugin (作者 Karel Minařík)

简介:es监控插件

SegmentSpy Plugin (作者 Zachary Tong)

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

Inquisitor Plugin (作者 Zachary Tong)

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

其它插件

Mapper Attachments Type plugin (作者 elasticsearch 团队)

简介:附件类型插件,通过tika库把各种类型的文件格式解析成字符串。

Hadoop Plugin (作者 elasticsearch team)

简介:hadoop和elasticsearch的集成插件,可以通过hadoop的mapreduce算法来并行建立索引,同时支持cascading,hive和pig等框架。

AWS Cloud Plugin (作者 elasticsearch 团队)

简介:elasticsearch与amazon web services的集成。

ElasticSearch Mock Solr Plugin (作者 Matt Weber)

简介:elasticsearch的solr api接口。用了这个插件可以使用solr的api来调用es,直接用solrj就可以调用es。比较适用于从solr转es时暂时过度。

Suggester Plugin (作者 Alexander Reelsen)

简介:es 搜索提示功能插件,不过es0.9版本后自带了这个功能,

ElasticSearch PartialUpdate Plugin (作者 Medcl)

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

ZooKeeper Discovery Plugin (作者 Sonian Inc.)

简介:通过zookeeper管理集群的插件。通过这个插件,es的分布式架构和solrcloud相似。

ElasticSearch Changes Plugin (作者 Thomas Peuss)

简介:elasticsearch索引操作记录插件。通过这个插件可以查看用户对索引的增删改操作。

ElasticSearch View Plugin (作者 Tanguy Leroux)

简介:这个插件可以把es的文档以html,xml或text的方式显示出来,它也可以通过查询生成web页面。

ElasticSearch New Relic Plugin (作者 Vinicius Carvalho)

简介:elasticsearch和newrelic的集成插件。newrelica是一个性能监控工具。这个插件会把节点的状态数据传到newrelic的账号上。
社区的编辑器好像不支持复制富文本信息,所以插件都没有链接,插件太多懒得一个个打链接了,想点地址的可以移步寒舍http://www.kailing.pub/article/index/arcid/87.html
  查看全部
ElasticSearch的很多功能都是官方或第三方基于ElasticSearch的AbstractPlugin类实现的插件来提供的,所以,在里里记录下一些常用的及实用的插件地址,以备不时之需

分词插件

Combo Analysis Plugin (作者 Olivier Favre, Yakaz)

简介:组合分词器,可以把多个分词器的结果组合在一起。

Smart Chinese Analysis Plugin (作者 elasticsearch 团队)

简介:lucene默认的中文分词器

ICU Analysis plugin (作者 elasticsearch 团队)

简介:lucene自带的ICU分词,ICU是一套稳定、成熟、功能强大、轻便易用和跨平台支持Unicode 的开发包。

Stempel (Polish) Analysis plugin (作者 elasticsearch 团队)

简介:法文分词器

IK Analysis Plugin (作者 Medcl)

简介:大名鼎鼎的ik分词,都懂的!

Mmseg Analysis Plugin (作者 Medcl)

简介:mmseg中文分词

Hunspell Analysis Plugin (作者 Jörg Prante)

简介:lucene自带的Hunspell模块

Japanese (Kuromoji) Analysis plugin (作者 elasticsearch 团队).

简介:日文分词器

Japanese Analysis plugin (作者 suguru).

简介:日文分词器

Russian and English Morphological Analysis Plugin (作者 Igor Motov)

简介:俄文英文分词器

Pinyin Analysis Plugin (作者 Medcl)

简介:拼音分词器

String2Integer Analysis Plugin (作者 Medcl)

简介:字符串转整型工具。主要用在facet这个功能上,如果facet的field的值是字符串的话,计算起来比较耗资源。可以把字符串映射成整型,对整型进行facet操作要比对字符串的快很多。

同步插件

CouchDB River Plugin (作者 elasticsearch 团队)

简介:CouchDB和elasticsearch的同步插件

Wikipedia River Plugin (作者 elasticsearch 团队)

简介:wikipedia文件读取插件。wikipedia是维基百科的一个离线库,不定期发布最新数据,是以xml形式发布的。这个river读取这个文件来建索引。

Twitter River Plugin (作者 elasticsearch 团队)

简介:twitter的同步插件,可以同步你twitter上的微博。

RabbitMQ River Plugin (作者 elasticsearch 团队)

简介:rabbitmq同步插件,读取rabbitmq上的队列信息并索引。

RSS River Plugin (作者 David Pilato)

简介:定期索引指定一个或多个RSS源的数据。

MongoDB River Plugin (作者 Richard Louapre)

简介:mongodb同步插件,mongodb必须搭成副本集的模式,因为这个插件的原理是通过定期读取mongodb中的oplog来同步数据。

Open Archives Initiative (OAI) River Plugin (作者 Jörg Prante)

简介:可以索引oai数据提供者提供的数据。

Sofa River Plugin (作者 adamlofts)

简介:这个插件可以把多个CouchDB的数据库同步到同一个es索引中。

JDBC River Plugin (作者 Jörg Prante)

简介:关系型数据库的同步插件

FileSystem River Plugin (作者 David Pilato)

简介:本地文件系统文件同步插件,使用方法是指定一个本地目录路径,es会定期扫描索引该目录下的文件。

LDAP River Plugin (作者 Tanguy Leroux)

简介:索引LDAP目录下的文件数据。

Dropbox River Plugin (作者 David Pilato)

简介:索引dropbox网盘上的文件。通过oauth协议来调用dropbox上的api建索引。

ActiveMQ River Plugin (作者 Dominik Dorn)

简介:activemq队列的同步插件,和之前rabbitmq的类似

Solr River Plugin (作者 Luca Cavanna)

简介:solr同步插件,可以把solr里面的索引同步到es

CSV River Plugin (作者 Martin Bednar)

简介:通过指定目录地址来索引csv文件。

数据传输插件

Servlet transport (作者 elasticsearch 团队)

简介:Servlet rest插件,通过servlet来封装rest接口。

Memcached transport plugin (作者 elasticsearch 团队)

简介:本插件可以通过memcached协议进行rest接口的调用。注意:这里不是使用memcache作为es的缓存。

Thrift Transport (作者 elasticsearch 团队)

简介:使用thrift进行数据传输。

ZeroMQ transport layer plugin (作者 Tanguy Leroux)

简介:使用zeromq进rest接口的调用。

Jetty HTTP transport plugin (作者 Sonian Inc.)

简介:使用jetty来提供http rest接口。默认是使用netty。这个插件的好处是可以对http接口进行一些权限的设置。

脚本插件

Python language Plugin (作者 elasticsearch 团队)

简介:python脚本支持

JavaScript language Plugin (作者 elasticsearch 团队)

简介:javascript脚本支持

Groovy lang Plugin (作者 elasticsearch 团队)

简介:groovy脚本支持

Clojure Language Plugin (作者 Kevin Downey)

简介:clojure脚本支持

站点插件(以网页形式展现)

BigDesk Plugin (作者 Lukáš Vlček)

简介:监控es状态的插件,推荐!

Elasticsearch Head Plugin (作者 Ben Birch)

简介:很方便对es进行各种操作的客户端。

Paramedic Plugin (作者 Karel Minařík)

简介:es监控插件

SegmentSpy Plugin (作者 Zachary Tong)

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

Inquisitor Plugin (作者 Zachary Tong)

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

其它插件

Mapper Attachments Type plugin (作者 elasticsearch 团队)

简介:附件类型插件,通过tika库把各种类型的文件格式解析成字符串。

Hadoop Plugin (作者 elasticsearch team)

简介:hadoop和elasticsearch的集成插件,可以通过hadoop的mapreduce算法来并行建立索引,同时支持cascading,hive和pig等框架。

AWS Cloud Plugin (作者 elasticsearch 团队)

简介:elasticsearch与amazon web services的集成。

ElasticSearch Mock Solr Plugin (作者 Matt Weber)

简介:elasticsearch的solr api接口。用了这个插件可以使用solr的api来调用es,直接用solrj就可以调用es。比较适用于从solr转es时暂时过度。

Suggester Plugin (作者 Alexander Reelsen)

简介:es 搜索提示功能插件,不过es0.9版本后自带了这个功能,

ElasticSearch PartialUpdate Plugin (作者 Medcl)

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

ZooKeeper Discovery Plugin (作者 Sonian Inc.)

简介:通过zookeeper管理集群的插件。通过这个插件,es的分布式架构和solrcloud相似。

ElasticSearch Changes Plugin (作者 Thomas Peuss)

简介:elasticsearch索引操作记录插件。通过这个插件可以查看用户对索引的增删改操作。

ElasticSearch View Plugin (作者 Tanguy Leroux)

简介:这个插件可以把es的文档以html,xml或text的方式显示出来,它也可以通过查询生成web页面。

ElasticSearch New Relic Plugin (作者 Vinicius Carvalho)

简介:elasticsearch和newrelic的集成插件。newrelica是一个性能监控工具。这个插件会把节点的状态数据传到newrelic的账号上。
社区的编辑器好像不支持复制富文本信息,所以插件都没有链接,插件太多懒得一个个打链接了,想点地址的可以移步寒舍http://www.kailing.pub/article/index/arcid/87.html
 

es索引模版配置不当导致的aggs聚合查询字段显示错误的问题

Max 发表了文章 • 0 个评论 • 593 次浏览 • 2016-03-18 16:51 • 来自相关话题

今天在es中对http日志的状态码status进行aggs搜索出现字段内容显示不正常的问题,记录过程:

http日志的情况:
1、http日志从logstash写入es时,状态码配置为status,其内容为 200 ,302 ,400 ,404等。
2、使用kibana对该日志的索引进行查询,在discover页面中显示的status内容跟logstash的内容一致,是正常的。

出现问题的场景:
(我这里使用的是kibana的sense插件进行的查询,如果直接使用curl python-ES也是一样的)
查询该索引:
POST http-2016.03.18/_search
{
  "fields": ["status"],
          "query":{
            "bool":{
              "must": [
                {
                  "range" : {
                    "@timestamp" : {"gte" : "now-5m"}
                  }
                }
              ]
            }
          },
          "_source": "false",
          "size": 0,
          "aggs": {
            "status_type": {
              "terms":{"field":"status"}
            }
          }
}

查询返回的结果中aggregations部分的内容:
"aggregations" : {
    "status_type" : {
      "doc_count_error_upper_bound" : 0,
      "sum_other_doc_count" : 0,
      "buckets" : [ {
        "key" : -56,
        "doc_count" : 376341
      }, {
        "key" : 46,
        "doc_count" : 51439
      }, {
        "key" : 45,
        "doc_count" : 5543
      }, {
        "key" : 48,
        "doc_count" : 1669
      }, {
        "key" : -108,
        "doc_count" : 1068
      }, {
        "key" : -50,
        "doc_count" : 11
      }, {
        "key" : -109,
        "doc_count" : 8
      }, {
        "key" : -112,
        "doc_count" : 4
      } 

寻找原因:
起先先去掉了查询的aggs部分,单独查询query的内容:
POST http-2016.03.18/_search
{
  "fields": ["status"],
          "query":{
            "bool":{
              "must": [
                {
                  "range" : {
                    "@timestamp" : {"gte" : "now-5m"}
                  }
                }
              ]
            }
          }
}

返回的结果中,hits显示的status字段内容是正常的:
"hits": {
    "total": 1242104,
    "max_score": 1,
    "hits": [
      {
        "_index": "http-2016.03.18",
        "_type": "log",
        "_id": "AVOI3EiwidwPAhB1e7gQ",
        "_score": 1,
        "fields": {
          "status": [
            "200"
          ]
        }
      }
    ......

然后查询了http索引的索引信息和模版配置:
GET /http-2016.03.18/
GET /_template/http
发现其中http的status的属性type类型的内容是byte :
        "properties": {
          "@timestamp": {
            "type": "date",
            "format": "strict_date_optional_time||epoch_millis"
          },
        ......
        ......
          "status": {
            "type": "byte"
          },
        ......
        ......

原因:
在aggs查询中发现了status字段显示错误的情况,status的type类型在es模版中定义成了byte类型,当status的值超过127后将出现溢出的情况,因此修改为short后,恢复了正常。
(对于http的状态码status,其type类型使用short已经足够了,如果使用integer,long或默认的string类型也是可以的,这里影响的是存储空间占用的大小。)
 
  查看全部
今天在es中对http日志的状态码status进行aggs搜索出现字段内容显示不正常的问题,记录过程:

http日志的情况:
1、http日志从logstash写入es时,状态码配置为status,其内容为 200 ,302 ,400 ,404等。
2、使用kibana对该日志的索引进行查询,在discover页面中显示的status内容跟logstash的内容一致,是正常的。

出现问题的场景:
(我这里使用的是kibana的sense插件进行的查询,如果直接使用curl python-ES也是一样的)
查询该索引:
POST http-2016.03.18/_search
{
  "fields": ["status"],
          "query":{
            "bool":{
              "must": [
                {
                  "range" : {
                    "@timestamp" : {"gte" : "now-5m"}
                  }
                }
              ]
            }
          },
          "_source": "false",
          "size": 0,
          "aggs": {
            "status_type": {
              "terms":{"field":"status"}
            }
          }
}

查询返回的结果中aggregations部分的内容:
"aggregations" : {
    "status_type" : {
      "doc_count_error_upper_bound" : 0,
      "sum_other_doc_count" : 0,
      "buckets" : [ {
        "key" : -56,
        "doc_count" : 376341
      }, {
        "key" : 46,
        "doc_count" : 51439
      }, {
        "key" : 45,
        "doc_count" : 5543
      }, {
        "key" : 48,
        "doc_count" : 1669
      }, {
        "key" : -108,
        "doc_count" : 1068
      }, {
        "key" : -50,
        "doc_count" : 11
      }, {
        "key" : -109,
        "doc_count" : 8
      }, {
        "key" : -112,
        "doc_count" : 4
      } 

寻找原因:
起先先去掉了查询的aggs部分,单独查询query的内容:
POST http-2016.03.18/_search
{
  "fields": ["status"],
          "query":{
            "bool":{
              "must": [
                {
                  "range" : {
                    "@timestamp" : {"gte" : "now-5m"}
                  }
                }
              ]
            }
          }
}

返回的结果中,hits显示的status字段内容是正常的:
"hits": {
    "total": 1242104,
    "max_score": 1,
    "hits": [
      {
        "_index": "http-2016.03.18",
        "_type": "log",
        "_id": "AVOI3EiwidwPAhB1e7gQ",
        "_score": 1,
        "fields": {
          "status": [
            "200"
          ]
        }
      }
    ......

然后查询了http索引的索引信息和模版配置:
GET /http-2016.03.18/
GET /_template/http
发现其中http的status的属性type类型的内容是byte :
        "properties": {
          "@timestamp": {
            "type": "date",
            "format": "strict_date_optional_time||epoch_millis"
          },
        ......
        ......
          "status": {
            "type": "byte"
          },
        ......
        ......

原因:
在aggs查询中发现了status字段显示错误的情况,status的type类型在es模版中定义成了byte类型,当status的值超过127后将出现溢出的情况,因此修改为short后,恢复了正常。
(对于http的状态码status,其type类型使用short已经足够了,如果使用integer,long或默认的string类型也是可以的,这里影响的是存储空间占用的大小。)
 
 

师兄我能加你QQ不,我安装ELK不成功。

回复

michael 发起了问题 • 1 人关注 • 0 个回复 • 353 次浏览 • 2016-03-17 09:07 • 来自相关话题

有没有可能搞一个综合的Kafka/Elasticsearch集群

回复

taowen 发起了问题 • 1 人关注 • 0 个回复 • 966 次浏览 • 2016-03-06 16:20 • 来自相关话题

es如何根据时间来做数据的delta值计算???

回复

joeywen 发起了问题 • 1 人关注 • 0 个回复 • 550 次浏览 • 2016-03-03 11:24 • 来自相关话题

关于ES备份问题

回复

vaceliu 发起了问题 • 2 人关注 • 0 个回复 • 536 次浏览 • 2016-02-18 11:39 • 来自相关话题

elastic的分词

回复

suwensen 发起了问题 • 1 人关注 • 0 个回复 • 860 次浏览 • 2016-02-03 16:13 • 来自相关话题

ES聚合时能否同时获取多个字段

回复

verra1448 发起了问题 • 1 人关注 • 0 个回复 • 902 次浏览 • 2016-02-02 16:15 • 来自相关话题

ElasticsearchIllegalArgumentException[failed to execute script]

回复

meteor 发起了问题 • 1 人关注 • 0 个回复 • 855 次浏览 • 2016-02-01 18:37 • 来自相关话题

ES有完整的API文档吗》官网上的是不是不全噢

回复

miranda2016 发起了问题 • 1 人关注 • 0 个回复 • 640 次浏览 • 2016-02-01 14:29 • 来自相关话题