不为失败找理由,要为成功找方法。

社区日报 第437期 (2018-11-03)

1、父子结构的排序方法
     http://t.cn/EwiSWFC
2、一款对聚合结果利用线性回归实时预测的插件
     http://t.cn/EwiXJ9g
3、一周热点:如果我在那辆重庆公交上
     http://t.cn/Ewitdiv
 
编辑: bsll
归档:https://elasticsearch.cn/article/3698
订阅:https://tinyletter.com/elastic-daily
继续阅读 »
1、父子结构的排序方法
     http://t.cn/EwiSWFC
2、一款对聚合结果利用线性回归实时预测的插件
     http://t.cn/EwiXJ9g
3、一周热点:如果我在那辆重庆公交上
     http://t.cn/Ewitdiv
 
编辑: bsll
归档:https://elasticsearch.cn/article/3698
订阅:https://tinyletter.com/elastic-daily 收起阅读 »

访谈:Elastic 在今日头条广告系统中的大规模应用

欢迎来到 Elastic 社区电台的第七期节目,我们本期节目的嘉宾是来自于今日头条广告系统的工程师徐磊和张海雷,今日头条作为业界非常流行的新闻资讯类软件,坐拥上亿互联网用户,其内部目前正大量使用了 Elasticsearch 来解决各式各样的业务问题,最早从15年开始的接触,到如今多达几十个集群的规模,以及成为公司平台化的基础服务,承载着PB级规模的数据,快来收听本期节目来一探究竟吧。

嘉宾

  • 张海雷,今日头条广告系统研发工程师,现负责ES平台的运维以及平台化建设。
  • 徐磊,今日头条广告系统研发工程师,有3年大规模ELK集群运维及平台化经验。

podcast_toutiao_banner720x420.jpg

主持人

Elastic 技术布道师,曾勇(Medcl)。

收听

可以点击下面的任意链接来收听(时长约 34 分钟):

关于今日头条

北京字节跳动科技有限公司成立于2012年3月,公司的主要产品“今日头条”客户端,是一款基于数据挖掘技术的个性化推荐引擎产品。“今日头条”致力于帮助用户在移动互联网上方便快捷地获取最有价值的信息,它会根据用户的兴趣为其推荐内容,这是对传统信息分发方式的一次巨大颠覆

“今日头条”面市后,迅速获得市场认可,长期占据苹果应用商店新闻类榜首。目前已有超过160万个个人、组织开设头条号。

关于 Elastic 社区电台

Elastic 开源社区举办的一款播客类节目, 邀请来自开源社区的用户,一起聊聊 Elastic 开源产品的使用案例、经验分享、架构变迁等等。

继续阅读 »

欢迎来到 Elastic 社区电台的第七期节目,我们本期节目的嘉宾是来自于今日头条广告系统的工程师徐磊和张海雷,今日头条作为业界非常流行的新闻资讯类软件,坐拥上亿互联网用户,其内部目前正大量使用了 Elasticsearch 来解决各式各样的业务问题,最早从15年开始的接触,到如今多达几十个集群的规模,以及成为公司平台化的基础服务,承载着PB级规模的数据,快来收听本期节目来一探究竟吧。

嘉宾

  • 张海雷,今日头条广告系统研发工程师,现负责ES平台的运维以及平台化建设。
  • 徐磊,今日头条广告系统研发工程师,有3年大规模ELK集群运维及平台化经验。

podcast_toutiao_banner720x420.jpg

主持人

Elastic 技术布道师,曾勇(Medcl)。

收听

可以点击下面的任意链接来收听(时长约 34 分钟):

关于今日头条

北京字节跳动科技有限公司成立于2012年3月,公司的主要产品“今日头条”客户端,是一款基于数据挖掘技术的个性化推荐引擎产品。“今日头条”致力于帮助用户在移动互联网上方便快捷地获取最有价值的信息,它会根据用户的兴趣为其推荐内容,这是对传统信息分发方式的一次巨大颠覆

“今日头条”面市后,迅速获得市场认可,长期占据苹果应用商店新闻类榜首。目前已有超过160万个个人、组织开设头条号。

关于 Elastic 社区电台

Elastic 开源社区举办的一款播客类节目, 邀请来自开源社区的用户,一起聊聊 Elastic 开源产品的使用案例、经验分享、架构变迁等等。

收起阅读 »

社区日报 第436期 (2018-11-02)

1.Elasticsearch搜索词组,如何更准?
http://t.cn/EZFBj2R
2.Lucene倒排索引简述 之倒排表
http://t.cn/Ew5bwiE
3.Elasticsearch下分布式存储的数据分布
http://t.cn/Ew5bU5G

编辑:铭毅天下
归档:https://elasticsearch.cn/article/3682
订阅:https://tinyletter.com/elastic-daily
继续阅读 »
1.Elasticsearch搜索词组,如何更准?
http://t.cn/EZFBj2R
2.Lucene倒排索引简述 之倒排表
http://t.cn/Ew5bwiE
3.Elasticsearch下分布式存储的数据分布
http://t.cn/Ew5bU5G

编辑:铭毅天下
归档:https://elasticsearch.cn/article/3682
订阅:https://tinyletter.com/elastic-daily 收起阅读 »

社区日报 第435期 (2018-11-01)

1.Elasticsearch的Query Cache梳理
http://t.cn/EwtwDxL
从Elastic APM发送数据到Logstash或Kafka
http://t.cn/EwtAzg3
使用Elasticsearch增强Wordpress搜索功能
http://t.cn/EwtAyhK

编辑:金桥
归档:https://elasticsearch.cn/article/3681
订阅:https://tinyletter.com/elastic-daily
继续阅读 »
1.Elasticsearch的Query Cache梳理
http://t.cn/EwtwDxL
从Elastic APM发送数据到Logstash或Kafka
http://t.cn/EwtAzg3
使用Elasticsearch增强Wordpress搜索功能
http://t.cn/EwtAyhK

编辑:金桥
归档:https://elasticsearch.cn/article/3681
订阅:https://tinyletter.com/elastic-daily 收起阅读 »

社区日报 第434期 (2018-10-31)

1. 日志采集中的关键技术分析
http://t.cn/Ew2Wibs
2. 日志汇集系统搭建
http://t.cn/RDg9wU2
3. Elasticsearch通过reroute api重新分配分片
http://t.cn/Ew2lS08
 
编辑:江水
归档:https://elasticsearch.cn/article/3680
订阅:https://tinyletter.com/elastic-daily
继续阅读 »
1. 日志采集中的关键技术分析
http://t.cn/Ew2Wibs
2. 日志汇集系统搭建
http://t.cn/RDg9wU2
3. Elasticsearch通过reroute api重新分配分片
http://t.cn/Ew2lS08
 
编辑:江水
归档:https://elasticsearch.cn/article/3680
订阅:https://tinyletter.com/elastic-daily 收起阅读 »

社区日报 第433期 (2018-10-30)

1、Elasticsearch官方Node.js客户端。
http://t.cn/EwvuIHq
2、Elasticsearch文档和映射。
http://t.cn/EwvkYbt
3、Elasticsearch快速指南。
http://t.cn/Ewvk8JY

编辑:叮咚光军
归档:https://elasticsearch.cn/article/1021
订阅:https://tinyletter.com/elastic-daily
继续阅读 »
1、Elasticsearch官方Node.js客户端。
http://t.cn/EwvuIHq
2、Elasticsearch文档和映射。
http://t.cn/EwvkYbt
3、Elasticsearch快速指南。
http://t.cn/Ewvk8JY

编辑:叮咚光军
归档:https://elasticsearch.cn/article/1021
订阅:https://tinyletter.com/elastic-daily 收起阅读 »

社区日报 第432期 (2018-10-29)

1.kibana 6.5 中的插件api相关更新
http://t.cn/EZECcbY

2.elastalert的kibana插件,从此可以在kibana中方便配置报警规则
http://t.cn/EZmaw65

3.nginx 与 elasticsearch 结合使用
http://t.cn/RwF1kqE

编辑:cyberdak
归档:https://elasticsearch.cn/article/1008
订阅:https://tinyletter.com/elastic-daily
 
继续阅读 »
1.kibana 6.5 中的插件api相关更新
http://t.cn/EZECcbY

2.elastalert的kibana插件,从此可以在kibana中方便配置报警规则
http://t.cn/EZmaw65

3.nginx 与 elasticsearch 结合使用
http://t.cn/RwF1kqE

编辑:cyberdak
归档:https://elasticsearch.cn/article/1008
订阅:https://tinyletter.com/elastic-daily
  收起阅读 »

社区日报 第431期 (2018-10-28)

1.在Elasticsearch中使用管道重建索引。
http://t.cn/EZQhdz5
2.使用Yelp的数据管道和Elasticsearch进行快速订单搜索。
http://t.cn/EZQzCpw
3.(自备梯子)数据科学家最需要的技能。
http://t.cn/E7jAYl9

编辑:至尊宝
归档:https://elasticsearch.cn/article/1007
订阅:https://tinyletter.com/elastic-daily
继续阅读 »
1.在Elasticsearch中使用管道重建索引。
http://t.cn/EZQhdz5
2.使用Yelp的数据管道和Elasticsearch进行快速订单搜索。
http://t.cn/EZQzCpw
3.(自备梯子)数据科学家最需要的技能。
http://t.cn/E7jAYl9

编辑:至尊宝
归档:https://elasticsearch.cn/article/1007
订阅:https://tinyletter.com/elastic-daily 收起阅读 »

ELK 使用小技巧(第 1 期)

ELK Tips 主要介绍一些 ELK 使用过程中的小技巧,内容主要来源为 Elastic 中文社区。

一、Logstash

1、Logstash 字符串分割(Split)

以下配置将 message 内容按照 \t 进行切分,为了使 \t 生效需要将 logstah.yml 中配置项 config.support_escapes 设置为 true,当设置为 true 时,带引号的字符串将处理转义字符,默认值为 false

filter {
  mutate {
    split => {"message" => "\t"}
    add_field => {
      "ftimeold" => "%{[message][0]}"
    }
  }
}

2、Logstash 按文件读取内容并存储到 ES

下面的配置将读取/home/txts/*下的文件,并读取整个文件内容,然后将文件内容存储到 test-text 索引中,同时该条记录的 _id 为文档的文件名。这里需要注意的是,想读取到文档末尾时,分隔符需设置为 EOF

input {
  file {
    path => ["/home/txts/*"]
    start_position => "beginning"
    mode => "read"
    delimiter => "EOF"
    file_completed_action => "log"
    file_completed_log_path => "/home/logs/file.log"
  }
}
output {
  elasticsearch {
    hosts => ["http://192.168.3.214:9200/"]
    index => "test-text"
    document_id => "%{path}"
  }
  stdout {}
}

3、ES Ingest Node 脚本案例

Ingest Node 可以使用多种过滤器对数据进行处理,其中 Script 脚本的功能非常强大,下面的案例实现了将一个 Json 结构进行了 Flat 化:

{
    "script" : {
      "lang" : "painless",
      "source" : "def dict = ['result': new HashMap()]; for (entry in ctx['json'].entrySet()) { dict['result'][entry.getKey()] = entry.getValue(); } ctx['osquery'] = dict; ctx.remove('json');"
    }
}

4、Logstash input file 插件中 sincedb 维护问题

  1. 如果不想保存 sincedb,可以使用下面配置:sincedb_path => "/dev/null"
  2. 如果希望被扫描的记录超过一段时间后自动被清除,可以使用 sincedb_clean_after => "2 weeks" 来实现,sincedb_clean_after 表示当一个文件在设定的时间内没有发生过任何变化,则关于这个文件的扫描记录将不会存储到 sincedb 里面,简单来说就是一条记录的过期时间。

二、Elasticsearch

1、ES 查询结果的一致性

为了保证用户每次查询结果的一致性(文档在结果中的顺序),可以在查询 url 里添加 preference=<some string> 这个参数,其中<some string>可以是用户的 session ID,这样某一个用户查询的时候,查询会被固定在某几个 shard。

2、同义词的扩展或收缩

  • 简单扩展,把同义词列表中的任意一个词扩展成同义词列表所有的词:jump,hop,leap
  • 简单收缩,把左边的多个同义词映射到了右边的单个词:leap,hop => jump
  • 类型扩展,完全不同于简单收缩或扩张,并不是平等看待所有的同义词,而是扩大了词的意义使被拓展的词更为通用:
    "cat    => cat,pet",
    "kitten => kitten,cat,pet",
    "dog    => dog,pet"
    "puppy  => puppy,dog,pet"

3、设置某个索引为只读状态

index.blocks.write 设置为 true 来禁止对索引的写操作,但索引的 metadatra 可以正常写。

PUT indexName/_settings
{
    "index.blocks.write": true
}

4、Failed to process cluster event (put-mapping) within 30s

这个是创建 mapping 的时候超时了,默认是 30s 应该是集群处理不过来了。索引文件太多,使得集群的状态数据过多过大,在每个小时新建索引和设置索引 mapping 的时候,就产生集群状态更新任务交给 master 处理,master 在变更状态数据的时候是单线程处理的,如果集群总的状态数据很大,master处理这些任务就容易出现超时。

解决办法:

  • 控制集群的总的索引数量,shard 数量;
  • 如果同时创建的索引非常多,最好避免通过写入数据自动创建索引;
  • 可以通过 cron 任务,预先顺序的创建好索引

5、Get 查询获取不到数据,但是用 _search 就可以查询到

这种情况一般在索引时候加入了路由字段(routing),那么在 get,delete,update 操作中都必须使用路由字段。

PUT my_index/my_type/1?routing=user1&refresh=true 
{
  "title": "This is a document"
}

GET my_index/my_type/1?routing=user1

6、ES 5.X 版本多个 type 的数据迁移到 6.X

把 5.x 集群中的索引按不同 type 拆分 reindex 到 6.x 集群索引中,然后将拆分出来的多个索引使用别名进行组织;例如 5.x 集群中有索引 IndexA,该索引上有 typeA 和 typeB,reindex 到 6.x 集群IndexA_TypeAIndexB_TypeB,reindex 语句如下所示:

POST _reindex
{
  "source": {
    "index": "IndexA",
    "type": "TypeA",
    "size": 10000
  },
  "dest": {
    "index": "IndexA_TypeA"
  }
}

最后给 6.x 集群的IndexA_TypeAIndexB_TypeB添加别名 IndexA,用户查询时使用的索引名称就不用变化。

POST _aliases  
{
    "actions": [
        {"add": {"index": "IndexA_TypeA", "alias": "IndexA"}},
        {"add": {"index": "IndexA_TypeB", "alias": "IndexA"}}
    ]
}

7、reindex 将多个索引合并成一个索引,需要重新设置新索引的 mapping 吗?

需要在 reindex 之前为新索引重新设置 mapping ,reindex 只是通过类似 scroll 的方式把数据 bulk 到新的索引,不会自动同步原索引的 mappings 信息。

8、集群的 discovery.zen.ping.unicast.hosts 配置

只需要配置主节点(master)地址即可。

discovery.zen.ping.unicast.hosts:
   - 192.168.1.10:9300
   - 192.168.1.11 
   - seeds.mydomain.com 

9、ES 的 path.data 配置多个盘的路径,查询效率与单个存储盘的效率比,哪个效率高些?

想最大程度发挥磁盘读写 io,还是推荐 RAID0。

使用多路径不一定会提升读写速度,和集群 shard 的数量有关系;主要是因为一个 shard 对应的文件,只会放到其中一块磁盘上,不会跨磁盘存储。比如一个极端的场景,集群 shard 数量比较少,每个结点上就一个shard,那么读写只会有一块磁盘发挥作用,其他磁盘都空闲的。

多路径对读写有提升比较大的场景,是每个结点上 shard 数量至少比盘的数量多,并且 shard 大小也差别不太多;shard 数量比较少,shard 大小差别太大,可能产生读写热点问题,即有的磁盘磁盘很忙,有的很闲。

ES 不会将一个索引的主副分片分配到同一台机器,所以即使一台机器的 RAID0 坏了,不会导致数据丢失,仅仅是副本没有了。

用 RAID0 的负面影响主要是磁盘损坏的时候,需要恢复的数据比较多;多路径磁盘,坏一块只会丢一部分数据,恢复数据会比较快;但是他也有缺陷,比如容易出现读写热点问题以及磁盘空间使用不均匀问题。

10、查询索引分片(Shard)位置的接口

# 推荐
GET /_cat/shards/<index_name>?v

GET /_cluster/state/routing_table

11、multi_match 与 match_phrase 的区别

  • multi_match 是对 boolQuery().should(matchQuery(field, keyword)) 的一种简化,简单说就是一个关键词,匹配多个字段,匹配方式为 matchQuery,正常的全文匹配。
  • match_phrase 简单说就是要匹配一个短语,例如你输入的文本为:中国人,如果被分词为:中国/人,那么查找时候会在指定的字段先查找到 "中国" 这个 term,然后在 "中国" 这个 term 后面去查找 "人"这个term(有顺序要求),如果匹配到则认为匹配成功;所以更像是在匹配一个短语(连贯的句子)。

12、analyzer, tokenizer, token-filter 有什么区别

  • analyzer :分析器,analyzer = 1 个 tokenizer + 若干个 token-filter;
  • tokenizer :分词器,主要用于对文本进行切割;
  • token-filter :过滤器,主要对 tokenizer 切割后的 term 进行再次处理。

13、_source 字段的用途

简单来说:_source 字段用于存储最原始的 JSON 文档内容(创建索引时传递的),这个字段不能被搜索,它可以在 get 或者 search 请求阶段进行返回;此外它会参与字段高亮计算、文档的更新等操作,一般不推荐关闭 _source 字段。

三、Kibana

1、kibana 表格默认排序

在设计表格的时候直接点击需要排序的那一列,然后让它按照倒序或者正序排序,然后点击保存即可,这样这个表格默认就是按照这一列倒序或者正序排列的。

kibana 排序设置


Any Code,Code Any!

扫码关注『AnyCode』,编程路上,一起前行。

继续阅读 »

ELK Tips 主要介绍一些 ELK 使用过程中的小技巧,内容主要来源为 Elastic 中文社区。

一、Logstash

1、Logstash 字符串分割(Split)

以下配置将 message 内容按照 \t 进行切分,为了使 \t 生效需要将 logstah.yml 中配置项 config.support_escapes 设置为 true,当设置为 true 时,带引号的字符串将处理转义字符,默认值为 false

filter {
  mutate {
    split => {"message" => "\t"}
    add_field => {
      "ftimeold" => "%{[message][0]}"
    }
  }
}

2、Logstash 按文件读取内容并存储到 ES

下面的配置将读取/home/txts/*下的文件,并读取整个文件内容,然后将文件内容存储到 test-text 索引中,同时该条记录的 _id 为文档的文件名。这里需要注意的是,想读取到文档末尾时,分隔符需设置为 EOF

input {
  file {
    path => ["/home/txts/*"]
    start_position => "beginning"
    mode => "read"
    delimiter => "EOF"
    file_completed_action => "log"
    file_completed_log_path => "/home/logs/file.log"
  }
}
output {
  elasticsearch {
    hosts => ["http://192.168.3.214:9200/"]
    index => "test-text"
    document_id => "%{path}"
  }
  stdout {}
}

3、ES Ingest Node 脚本案例

Ingest Node 可以使用多种过滤器对数据进行处理,其中 Script 脚本的功能非常强大,下面的案例实现了将一个 Json 结构进行了 Flat 化:

{
    "script" : {
      "lang" : "painless",
      "source" : "def dict = ['result': new HashMap()]; for (entry in ctx['json'].entrySet()) { dict['result'][entry.getKey()] = entry.getValue(); } ctx['osquery'] = dict; ctx.remove('json');"
    }
}

4、Logstash input file 插件中 sincedb 维护问题

  1. 如果不想保存 sincedb,可以使用下面配置:sincedb_path => "/dev/null"
  2. 如果希望被扫描的记录超过一段时间后自动被清除,可以使用 sincedb_clean_after => "2 weeks" 来实现,sincedb_clean_after 表示当一个文件在设定的时间内没有发生过任何变化,则关于这个文件的扫描记录将不会存储到 sincedb 里面,简单来说就是一条记录的过期时间。

二、Elasticsearch

1、ES 查询结果的一致性

为了保证用户每次查询结果的一致性(文档在结果中的顺序),可以在查询 url 里添加 preference=<some string> 这个参数,其中<some string>可以是用户的 session ID,这样某一个用户查询的时候,查询会被固定在某几个 shard。

2、同义词的扩展或收缩

  • 简单扩展,把同义词列表中的任意一个词扩展成同义词列表所有的词:jump,hop,leap
  • 简单收缩,把左边的多个同义词映射到了右边的单个词:leap,hop => jump
  • 类型扩展,完全不同于简单收缩或扩张,并不是平等看待所有的同义词,而是扩大了词的意义使被拓展的词更为通用:
    "cat    => cat,pet",
    "kitten => kitten,cat,pet",
    "dog    => dog,pet"
    "puppy  => puppy,dog,pet"

3、设置某个索引为只读状态

index.blocks.write 设置为 true 来禁止对索引的写操作,但索引的 metadatra 可以正常写。

PUT indexName/_settings
{
    "index.blocks.write": true
}

4、Failed to process cluster event (put-mapping) within 30s

这个是创建 mapping 的时候超时了,默认是 30s 应该是集群处理不过来了。索引文件太多,使得集群的状态数据过多过大,在每个小时新建索引和设置索引 mapping 的时候,就产生集群状态更新任务交给 master 处理,master 在变更状态数据的时候是单线程处理的,如果集群总的状态数据很大,master处理这些任务就容易出现超时。

解决办法:

  • 控制集群的总的索引数量,shard 数量;
  • 如果同时创建的索引非常多,最好避免通过写入数据自动创建索引;
  • 可以通过 cron 任务,预先顺序的创建好索引

5、Get 查询获取不到数据,但是用 _search 就可以查询到

这种情况一般在索引时候加入了路由字段(routing),那么在 get,delete,update 操作中都必须使用路由字段。

PUT my_index/my_type/1?routing=user1&refresh=true 
{
  "title": "This is a document"
}

GET my_index/my_type/1?routing=user1

6、ES 5.X 版本多个 type 的数据迁移到 6.X

把 5.x 集群中的索引按不同 type 拆分 reindex 到 6.x 集群索引中,然后将拆分出来的多个索引使用别名进行组织;例如 5.x 集群中有索引 IndexA,该索引上有 typeA 和 typeB,reindex 到 6.x 集群IndexA_TypeAIndexB_TypeB,reindex 语句如下所示:

POST _reindex
{
  "source": {
    "index": "IndexA",
    "type": "TypeA",
    "size": 10000
  },
  "dest": {
    "index": "IndexA_TypeA"
  }
}

最后给 6.x 集群的IndexA_TypeAIndexB_TypeB添加别名 IndexA,用户查询时使用的索引名称就不用变化。

POST _aliases  
{
    "actions": [
        {"add": {"index": "IndexA_TypeA", "alias": "IndexA"}},
        {"add": {"index": "IndexA_TypeB", "alias": "IndexA"}}
    ]
}

7、reindex 将多个索引合并成一个索引,需要重新设置新索引的 mapping 吗?

需要在 reindex 之前为新索引重新设置 mapping ,reindex 只是通过类似 scroll 的方式把数据 bulk 到新的索引,不会自动同步原索引的 mappings 信息。

8、集群的 discovery.zen.ping.unicast.hosts 配置

只需要配置主节点(master)地址即可。

discovery.zen.ping.unicast.hosts:
   - 192.168.1.10:9300
   - 192.168.1.11 
   - seeds.mydomain.com 

9、ES 的 path.data 配置多个盘的路径,查询效率与单个存储盘的效率比,哪个效率高些?

想最大程度发挥磁盘读写 io,还是推荐 RAID0。

使用多路径不一定会提升读写速度,和集群 shard 的数量有关系;主要是因为一个 shard 对应的文件,只会放到其中一块磁盘上,不会跨磁盘存储。比如一个极端的场景,集群 shard 数量比较少,每个结点上就一个shard,那么读写只会有一块磁盘发挥作用,其他磁盘都空闲的。

多路径对读写有提升比较大的场景,是每个结点上 shard 数量至少比盘的数量多,并且 shard 大小也差别不太多;shard 数量比较少,shard 大小差别太大,可能产生读写热点问题,即有的磁盘磁盘很忙,有的很闲。

ES 不会将一个索引的主副分片分配到同一台机器,所以即使一台机器的 RAID0 坏了,不会导致数据丢失,仅仅是副本没有了。

用 RAID0 的负面影响主要是磁盘损坏的时候,需要恢复的数据比较多;多路径磁盘,坏一块只会丢一部分数据,恢复数据会比较快;但是他也有缺陷,比如容易出现读写热点问题以及磁盘空间使用不均匀问题。

10、查询索引分片(Shard)位置的接口

# 推荐
GET /_cat/shards/<index_name>?v

GET /_cluster/state/routing_table

11、multi_match 与 match_phrase 的区别

  • multi_match 是对 boolQuery().should(matchQuery(field, keyword)) 的一种简化,简单说就是一个关键词,匹配多个字段,匹配方式为 matchQuery,正常的全文匹配。
  • match_phrase 简单说就是要匹配一个短语,例如你输入的文本为:中国人,如果被分词为:中国/人,那么查找时候会在指定的字段先查找到 "中国" 这个 term,然后在 "中国" 这个 term 后面去查找 "人"这个term(有顺序要求),如果匹配到则认为匹配成功;所以更像是在匹配一个短语(连贯的句子)。

12、analyzer, tokenizer, token-filter 有什么区别

  • analyzer :分析器,analyzer = 1 个 tokenizer + 若干个 token-filter;
  • tokenizer :分词器,主要用于对文本进行切割;
  • token-filter :过滤器,主要对 tokenizer 切割后的 term 进行再次处理。

13、_source 字段的用途

简单来说:_source 字段用于存储最原始的 JSON 文档内容(创建索引时传递的),这个字段不能被搜索,它可以在 get 或者 search 请求阶段进行返回;此外它会参与字段高亮计算、文档的更新等操作,一般不推荐关闭 _source 字段。

三、Kibana

1、kibana 表格默认排序

在设计表格的时候直接点击需要排序的那一列,然后让它按照倒序或者正序排序,然后点击保存即可,这样这个表格默认就是按照这一列倒序或者正序排列的。

kibana 排序设置


Any Code,Code Any!

扫码关注『AnyCode』,编程路上,一起前行。

收起阅读 »

社区日报 第430期 (2018-10-27)

  1. 索引时排序的优势之一:节省空间。 http://t.cn/EZpy0Pm

  2. Wordpress利用ElasticPress插件使用es的实例。 http://t.cn/EZp5JZJ

  3. 一款支持英语、俄语的词法分析插件。 http://t.cn/EZpKfK4
继续阅读 »
  1. 索引时排序的优势之一:节省空间。 http://t.cn/EZpy0Pm

  2. Wordpress利用ElasticPress插件使用es的实例。 http://t.cn/EZp5JZJ

  3. 一款支持英语、俄语的词法分析插件。 http://t.cn/EZpKfK4
收起阅读 »

社区日报 第429期 (2018-10-26)

1.来了解下基于 Elastic Stack 的安全解决方案
http://t.cn/EZXE8mY

2.AuditBeat 使用教程
http://t.cn/EZXEk20

3.(自备梯子)Docker 日志收集快乐指南
http://t.cn/EZXnAsy


编辑:rockybean
归档:https://elasticsearch.cn/article/1004
订阅:https://tinyletter.com/elastic-daily
继续阅读 »
1.来了解下基于 Elastic Stack 的安全解决方案
http://t.cn/EZXE8mY

2.AuditBeat 使用教程
http://t.cn/EZXEk20

3.(自备梯子)Docker 日志收集快乐指南
http://t.cn/EZXnAsy


编辑:rockybean
归档:https://elasticsearch.cn/article/1004
订阅:https://tinyletter.com/elastic-daily 收起阅读 »

上海普翔诚招 Elastic 技术支持工程师

公司介绍:

上海普翔是 elastic 在中国的核心合作伙伴,相关业务有 Elastic 商业产品代理、Elastic 技术咨询与实施等,拥有国内最早一批通过 Elastic Certified Engineer 认证考试的工程师,也是 2018年 Elastic 开发者大会的钻石级赞助商,现服务零售、银行、证券等众多行业的客户,帮助他们更好地将 Elastic 产品应用到实际业务中。

工作地点:上海、深圳

招聘职位: Elastic 初中级技术支持工程师

薪资待遇:14k ~ 22k

工作内容:

1、根据架构设计方案,完成 ELK 集群的搭建工作。

2、根据架构师设计的数据收集与分析方案,理解并基于 Elastic 产品如 Filebeat Logstash Elasticsearch Kibana等快速高效地完成方案的实施落地工作。

3、帮助客户快速掌握 Elastic 商业产品的使用方法,如安全认证、监控告警、机器学习等功能。

4、参与 Elastic 在国内的社区推广工作,如编写博文、参与直播、workshop 等活动。

职位要求:

1、本科以上学历,计算机相关专业有加分,1年以上工作经验,有一定的运维经验。

2、了解 Elastic 产品(如 Elasticsearch Kibana Logstash Beats)的组成和基本使用方法,有ELK 项目经验的有加分。

3、需要良好的学习和研究能力,面对一个新产品或者特性时,可以在较快的时间内掌握。

4、有良好的沟通和表达能力。

5、经常参加elastic 线下活动有加分,经常在中文社区讨论问题有加分。

招聘职位: Elastic 中高级技术支持工程师

薪资待遇:22k ~ 30k

工作内容:

1、根据客户需求完成合理的 ELK 集群架构设计方案,并能快速完成 ELK 集群的搭建工作。

2、与客户沟通其数据收集与分析的需求,并合理设计解决方案,可以基于 Elastic 产品如 Filebeat Logstash Elasticsearch Kibana 等快速高效地完成方案的实施落地工作。

3、向客户介绍 Elastic 开源与商业产品,并根据客户需求提供对应的商业解决方案,帮助客户快速掌握 Elastic 商业产品的使用方法,如安全认证、监控告警、机器学习等功能。

4、参与 Elastic 在国内的社区推广工作,如编写博文、参与直播、workshop 等活动。

职位要求:

1、本科以上学历,计算机专业有加分,3年以上工作经验,需要有运维经验。

2、熟悉 Elastic 产品(如 Elasticsearch Kibana Logstash Beats )的组成和使用,了解其底层的运行机制,掌握常见的排障技巧与优化方案。

3、需要良好的学习和研究能力,面对一个新产品或者特性时,可以在较快的时间内掌握。

4、有良好的沟通和表达能力,擅长倾听客户的问题并快速定位解决问题的关键点。

5、经常参加elastic 线下活动有加分,经常在中文社区讨论问题有加分。

特别说明:

1. 如果你还没有使用过 Elastic 产品,但有 2 年以上运维经验,熟悉常见系统日志、软件日志的查询与分析策略,对 ETL 有一定了解,或者你有其他大数据产品如 hadoop、kafka 等的使用经验,同时对 Elastic 产品抱有极大的学习热情,也欢迎投简历来沟通,我们有完善的培训机制,可以帮助你快速掌握相关知识。

2. 如果你通过了 Elastic Certified Engineer 认证考试并成功入职我司,我们会报销你的考试费用!!!

如果你对 elasticsearch Logstash Beats Kibana等感兴趣,请加入我们,我们这里有实战、有直播、有源码分析活动、有培训,还有与elastic 原厂工程师面对面交流的机会!

如果你对 elastic 在中国的商业化发展感兴趣,更要加入我们,我们是 elastic 在中国的核心合作伙伴,会与 elastic 原厂紧密合作一同推动其中国业务的快速拓展!

 如果你对围绕 elastic 开发周边产品感兴趣,也请加入我们,让我们一起参与 elastic 生态的产品研发,为开源世界贡献自己的力量!

欢迎投递简历至:weibinway@puxiangtech.com

添加微信沟通:rockybean
继续阅读 »
公司介绍:

上海普翔是 elastic 在中国的核心合作伙伴,相关业务有 Elastic 商业产品代理、Elastic 技术咨询与实施等,拥有国内最早一批通过 Elastic Certified Engineer 认证考试的工程师,也是 2018年 Elastic 开发者大会的钻石级赞助商,现服务零售、银行、证券等众多行业的客户,帮助他们更好地将 Elastic 产品应用到实际业务中。

工作地点:上海、深圳

招聘职位: Elastic 初中级技术支持工程师

薪资待遇:14k ~ 22k

工作内容:

1、根据架构设计方案,完成 ELK 集群的搭建工作。

2、根据架构师设计的数据收集与分析方案,理解并基于 Elastic 产品如 Filebeat Logstash Elasticsearch Kibana等快速高效地完成方案的实施落地工作。

3、帮助客户快速掌握 Elastic 商业产品的使用方法,如安全认证、监控告警、机器学习等功能。

4、参与 Elastic 在国内的社区推广工作,如编写博文、参与直播、workshop 等活动。

职位要求:

1、本科以上学历,计算机相关专业有加分,1年以上工作经验,有一定的运维经验。

2、了解 Elastic 产品(如 Elasticsearch Kibana Logstash Beats)的组成和基本使用方法,有ELK 项目经验的有加分。

3、需要良好的学习和研究能力,面对一个新产品或者特性时,可以在较快的时间内掌握。

4、有良好的沟通和表达能力。

5、经常参加elastic 线下活动有加分,经常在中文社区讨论问题有加分。

招聘职位: Elastic 中高级技术支持工程师

薪资待遇:22k ~ 30k

工作内容:

1、根据客户需求完成合理的 ELK 集群架构设计方案,并能快速完成 ELK 集群的搭建工作。

2、与客户沟通其数据收集与分析的需求,并合理设计解决方案,可以基于 Elastic 产品如 Filebeat Logstash Elasticsearch Kibana 等快速高效地完成方案的实施落地工作。

3、向客户介绍 Elastic 开源与商业产品,并根据客户需求提供对应的商业解决方案,帮助客户快速掌握 Elastic 商业产品的使用方法,如安全认证、监控告警、机器学习等功能。

4、参与 Elastic 在国内的社区推广工作,如编写博文、参与直播、workshop 等活动。

职位要求:

1、本科以上学历,计算机专业有加分,3年以上工作经验,需要有运维经验。

2、熟悉 Elastic 产品(如 Elasticsearch Kibana Logstash Beats )的组成和使用,了解其底层的运行机制,掌握常见的排障技巧与优化方案。

3、需要良好的学习和研究能力,面对一个新产品或者特性时,可以在较快的时间内掌握。

4、有良好的沟通和表达能力,擅长倾听客户的问题并快速定位解决问题的关键点。

5、经常参加elastic 线下活动有加分,经常在中文社区讨论问题有加分。

特别说明:

1. 如果你还没有使用过 Elastic 产品,但有 2 年以上运维经验,熟悉常见系统日志、软件日志的查询与分析策略,对 ETL 有一定了解,或者你有其他大数据产品如 hadoop、kafka 等的使用经验,同时对 Elastic 产品抱有极大的学习热情,也欢迎投简历来沟通,我们有完善的培训机制,可以帮助你快速掌握相关知识。

2. 如果你通过了 Elastic Certified Engineer 认证考试并成功入职我司,我们会报销你的考试费用!!!

如果你对 elasticsearch Logstash Beats Kibana等感兴趣,请加入我们,我们这里有实战、有直播、有源码分析活动、有培训,还有与elastic 原厂工程师面对面交流的机会!

如果你对 elastic 在中国的商业化发展感兴趣,更要加入我们,我们是 elastic 在中国的核心合作伙伴,会与 elastic 原厂紧密合作一同推动其中国业务的快速拓展!

 如果你对围绕 elastic 开发周边产品感兴趣,也请加入我们,让我们一起参与 elastic 生态的产品研发,为开源世界贡献自己的力量!

欢迎投递简历至:weibinway@puxiangtech.com

添加微信沟通:rockybean 收起阅读 »

社区日报 第428期 (2018-10-25)

1.唯品会Dragonfly日志系统的Elasticsearch实践
http://t.cn/EZUmLoC
2.美团点评基于 Flink 的实时数仓建设实践
http://t.cn/Ez3sEMH
3.golang实现Elasticsearch做短信查询统计
http://t.cn/EZUmxOr

编辑:金桥
归档:https://elasticsearch.cn/article/1002
订阅:https://tinyletter.com/elastic-daily
继续阅读 »
1.唯品会Dragonfly日志系统的Elasticsearch实践
http://t.cn/EZUmLoC
2.美团点评基于 Flink 的实时数仓建设实践
http://t.cn/Ez3sEMH
3.golang实现Elasticsearch做短信查询统计
http://t.cn/EZUmxOr

编辑:金桥
归档:https://elasticsearch.cn/article/1002
订阅:https://tinyletter.com/elastic-daily 收起阅读 »

logstash怎么把csv文件中的x列和y列编程geo_shape的point导入es集群中

最近开始研究elasticsearch例如添加geo_hash类型的坐标是这样的

filter { 
    mutate { 
        add_field => {"location" => "%{y},%{x}"}  --把x,y变为location属性,类型为geohash
remove_field => ["@version","@timestamp","qsdwmc","gldwmc","bz","sjly","rksj","guid","clsj"," czsj","x","y","mjzrq","gxsj"]
    } 
}
 
但是我看了官网上的例子:
 PUT /example
{
    "mappings": {
        "doc": {
            "properties": {
                "location": {
                    "type": "geo_shape"
                }
            }
        }
    }
}
POST /example/doc?refresh
{
    "name": "Wind & Wetter, Berlin, Germany",
    "location": {
        "type": "point",
        "coordinates": [13.400544, 52.530286]
    }
}
 
请问各位大佬通过logstash怎么添加这样子的location的属性,type为point,然后还有个coordinates数组
继续阅读 »
最近开始研究elasticsearch例如添加geo_hash类型的坐标是这样的

filter { 
    mutate { 
        add_field => {"location" => "%{y},%{x}"}  --把x,y变为location属性,类型为geohash
remove_field => ["@version","@timestamp","qsdwmc","gldwmc","bz","sjly","rksj","guid","clsj"," czsj","x","y","mjzrq","gxsj"]
    } 
}
 
但是我看了官网上的例子:
 PUT /example
{
    "mappings": {
        "doc": {
            "properties": {
                "location": {
                    "type": "geo_shape"
                }
            }
        }
    }
}
POST /example/doc?refresh
{
    "name": "Wind & Wetter, Berlin, Germany",
    "location": {
        "type": "point",
        "coordinates": [13.400544, 52.530286]
    }
}
 
请问各位大佬通过logstash怎么添加这样子的location的属性,type为point,然后还有个coordinates数组 收起阅读 »

社区日报 第427期 (2018-10-24)

1. 牢记这7点,技术小白也能玩转 Elasticsearch 
http://t.cn/EvTWYdA
2. Elasticsearch Nested类型深入详解
http://t.cn/EZ2j4Gh
3. Elasticsearch 的滚动(scroll)
http://t.cn/R34TnrJ
 
祝大家 1024 节日快乐
 
编辑:江水
归档:https://elasticsearch.cn/article/1000
订阅:https://tinyletter.com/elastic-daily
继续阅读 »
1. 牢记这7点,技术小白也能玩转 Elasticsearch 
http://t.cn/EvTWYdA
2. Elasticsearch Nested类型深入详解
http://t.cn/EZ2j4Gh
3. Elasticsearch 的滚动(scroll)
http://t.cn/R34TnrJ
 
祝大家 1024 节日快乐
 
编辑:江水
归档:https://elasticsearch.cn/article/1000
订阅:https://tinyletter.com/elastic-daily 收起阅读 »