社区日报 第1185期 (2021-01-30)
1.通过配置自定义分析器扩展asciifolding分析器范围
https://stackoverflow.com/questions/44827673/search-with-asciifolding-and-utf-8-characters-in-elasticsearch
2.字段折叠用法示例
https://blog.csdn.net/ctwy291314/article/details/82759215
3.es7.11如何提升date-histogram的聚合速度
https://www.elastic.co/cn/blog/how-we-made-date-histogram-aggregations-faster-than-ever-in-elasticsearch-7-11
1.通过配置自定义分析器扩展asciifolding分析器范围
https://stackoverflow.com/questions/44827673/search-with-asciifolding-and-utf-8-characters-in-elasticsearch
2.字段折叠用法示例
https://blog.csdn.net/ctwy291314/article/details/82759215
3.es7.11如何提升date-histogram的聚合速度
https://www.elastic.co/cn/blog/how-we-made-date-histogram-aggregations-faster-than-ever-in-elasticsearch-7-11
收起阅读 »社区日报 第1184期 (2021-01-29)
https://elasticstack.blog.csdn ... 67307
2、踩坑日志之elasticSearch
https://mp.weixin.qq.com/s/9TTGQRTFSLJo9-APnNh-SQ
3、Elasticsearch中的相似度评分介绍
https://cloud.tencent.com/developer/news/762466
编辑:铭毅天下
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
https://elasticstack.blog.csdn ... 67307
2、踩坑日志之elasticSearch
https://mp.weixin.qq.com/s/9TTGQRTFSLJo9-APnNh-SQ
3、Elasticsearch中的相似度评分介绍
https://cloud.tencent.com/developer/news/762466
编辑:铭毅天下
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup 收起阅读 »
Elasticsearch:EQL 入门 - 使用 EQL 检测威胁
详细阅读,请参阅 https://elasticstack.blog.csdn ... 89999
详细阅读,请参阅 https://elasticstack.blog.csdn ... 89999 收起阅读 »
社区日报 第1183期 (2021-01-28)
https://elasticstack.blog.csdn ... 07195
2.提升四倍索引速度的办法
https://elasticsearch.cn/article/14228
3.滴滴Logi日志服务套件
https://blog.csdn.net/changxia ... 26532
编辑:金桥
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
https://elasticstack.blog.csdn ... 07195
2.提升四倍索引速度的办法
https://elasticsearch.cn/article/14228
3.滴滴Logi日志服务套件
https://blog.csdn.net/changxia ... 26532
编辑:金桥
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup 收起阅读 »
Elasticsearch生态&技术峰会
开源最大的特征就是开放性,云生态则让开源技术更具开放性与创造性,Elastic 与阿里云的合作正是开源与云生态共生共荣的典范。值此合作三周年之际,我们邀请业界资深人士相聚云端,共话云上Elasticsearch生态与技术的未来。
本次峰会邀请了阿里巴巴副总裁/阿里云智能高级研究员贾扬清、Elastic创始人&CEO Shay Banon共话开源与云生态未来发展之路,也汇聚了13位Elasticsearch技术领域资深的专家带来最前沿的技术分享。
活动时间:2021年2月2日
直播地址:https://developer.aliyun.com/t ... c9fkf
开源最大的特征就是开放性,云生态则让开源技术更具开放性与创造性,Elastic 与阿里云的合作正是开源与云生态共生共荣的典范。值此合作三周年之际,我们邀请业界资深人士相聚云端,共话云上Elasticsearch生态与技术的未来。
本次峰会邀请了阿里巴巴副总裁/阿里云智能高级研究员贾扬清、Elastic创始人&CEO Shay Banon共话开源与云生态未来发展之路,也汇聚了13位Elasticsearch技术领域资深的专家带来最前沿的技术分享。
活动时间:2021年2月2日
直播地址:https://developer.aliyun.com/t ... c9fkf
收起阅读 »
如何使用 Ansible自动化部署 Elastic Stack
如果你想了解 ansible 是如何部署 Elastic Stack 的,请阅读系列文章:
如何使用 Ansible自动化部署 Elastic Stack - Overview(一)
如何使用 Ansible自动化部署 Elastic Stack - Elasticsearch (二)
如何使用 Ansible自动化部署 Elastic Stack - Kibana(三)
Elastic:如何使用 Ansible自动化部署 Elastic Stack -Security(四)
如何使用 Ansible自动化部署 Elastic Stack -Metricbeat(五)
如果你想了解 ansible 是如何部署 Elastic Stack 的,请阅读系列文章:
如何使用 Ansible自动化部署 Elastic Stack - Overview(一)
如何使用 Ansible自动化部署 Elastic Stack - Elasticsearch (二)
如何使用 Ansible自动化部署 Elastic Stack - Kibana(三)
Elastic:如何使用 Ansible自动化部署 Elastic Stack -Security(四)
如何使用 Ansible自动化部署 Elastic Stack -Metricbeat(五) 收起阅读 »
四倍索引速度提升, 有点东西
最近看到 INFINI Gateway 新增了一个 bulk_reshuffle filter, 于是便简单地测试一下这个功能。(Gateway 下载地址 以及 参考文档)
测试机器配置
系统 | 处理器 | 内存 |
---|---|---|
Macos | 2 GHz 四核Intel Core i5 | 16 GB |
测试所需软件及版本
- Elasticsearch 7.10
- Kibana 7.10
- INFINI Gateway 最新版本
- Logstash 7.10
- Metricbeat 7.10
本文就省略以上软件的下载和安装步骤了。 另外本文中测试 Elasticsearch 集群含两个节点,每个节点配置内存都为 1GB ,其他参数均为默认。
测试步骤
准备测试数据文件
本文测试数据文件 nginx_mock_log ,文件中每行结构如下:
{"timestamp":1611540661651,"method":"POST","msg":"mock log"}
大概一千多万条
Logstatsh 使用 Input file 模式直接输出数据到 Elasticsearch
编辑 Logstash 配置 test.conf 如下:
input{
file {
path => ["/test/nginx_mock_log"]
type => "file_monitor"
start_position => "beginning"
}
}
output{
elasticsearch {
hosts => ["localhost:9200"]
index => "nginx_mock_log"
http_compression => false
}
}
在 kibana 中创建索引 nginx_mock_log ,将主分片设置为2(为了体现出 Gateway的性能优势, 主分片数应设置大于1), 配置如下:
PUT nginx_mock_log
{
"mappings" : {
"properties" : {
"@timestamp" : {
"type" : "date"
},
"@version" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"host" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"message" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"path" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"type" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
}
}
},
"settings" : {
"number_of_shards" : "2"
}
}
运行 Logstash
/usr/local/logstash/bin/logstash -f test.conf
打开 Kibana Stack Monitorning 查看 Indexing Rate 监控指标如下图:
从图中可以看到索引速率基本保持在4300/s 上下
Logstatsh 使用 Input file 模式输出数据到 Gateway
进入 Kibana 删除索引 nginx_mock_log 并重建
DELETE nginx_mock_log
PUT nginx_mock_log
{
"mappings" : {
"properties" : {
"@timestamp" : {
"type" : "date"
},
"@version" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"host" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"message" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"path" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"type" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
}
}
},
"settings" : {
"number_of_shards" : "2"
}
}
修改 Logstash 配置 test.conf 如下:
input{
file {
path => ["/test/nginx_mock_log"]
type => "file_monitor"
start_position => "beginning"
}
}
output{
elasticsearch {
hosts => ["localhost:8000"]
index => "nginx_mock_log"
http_compression => false
}
}
修改 Gateway 配置文件 gateway.yaml 如下:
path.data: data
path.logs: log
entry:
- name: es_gateway #your gateway endpoint
enabled: true
router: default
network:
binding: localhost:8000
reuse_port: true #you can start multi gateway instance, they share same port, to full utilize system's resources
flow:
- name: bulk_es_test
filter: #comment out any filter sections, like you don't need cache or rate-limiter
- name: bulk_reshuffle
parameters:
elasticsearch: dev
level: node
mode: async
- name: elasticsearch
parameters:
elasticsearch: dev
refresh:
enabled: true
interval: 30s
- name: request_logging
filter:
- name: request_logging
parameters:
queue_name: request_logging
router:
- name: default
default_flow: bulk_es_test
tracing_flow: request_logging
elasticsearch:
- name: dev
enabled: true
endpoint: http://localhost:9200 # if your elasticsearch is using https, your gateway should be listen on as https as well
basic_auth: #used to discovery full cluster nodes, or check elasticsearch's health and versions
username: elastic
password: yV6syH3KLt4DxqMlCyag
discovery: # auto discovery elasticsearch cluster nodes
enabled: true
refresh:
enabled: true
modules:
- name: elastic
enabled: true
elasticsearch: dev
store:
enabled: true
orm:
enabled: true
init_template: true
template_name: ".infini-default1"
index_prefix: "gateway_"
- name: pipeline
enabled: true
runners:
- name: nodes_index
enabled: true
max_go_routine: 2
threshold_in_ms: 0
timeout_in_ms: 5000
pipeline_id: bulk_request_ingest
- name: request_logging_test_name
enabled: true
max_go_routine: 2
threshold_in_ms: 0
timeout_in_ms: 5000
pipeline_id: request_logging_index
pipelines:
- name: bulk_request_ingest
start:
joint: bulk_indexing
enabled: true
parameters:
elasticsearch: "dev"
timeout: "5s"
worker_size: 10
bulk_size_in_mb: 1 #in MB
- name: request_logging_index
start:
joint: json_indexing
enabled: true
parameters:
index_name: "gateway_requests"
elasticsearch: "dev"
input_queue: "request_logging"
timeout: "5s"
worker_size: 10
bulk_size_in_mb: 1 #in MB
queue:
min_msg_size: 1
max_msg_size: 5000000000
max_bytes_per_file: 53687091200
sync_every_records: 100000 # sync by records count
sync_timeout_in_ms: 10000 # sync by time in million seconds
write_chan_buffer: 1000
read_chan_buffer: 1000
以上各配置节点含义,请参考 Gateway 文档
启动 Gateway
./gateway
删除 Logstash data 目录
rm -rf /usr/local/logstash/data
启动 Logstash
/usr/local/logstash/bin/logstash -f test.conf
打开 Kibana Stack Monitorning 查看 Indexing Rate 监控指标如下图:
从上图后半部分可以看到索引速率可以保持在 25000/s 上下(一会儿的功夫,一千多万条数据导入ES完事了)
前面看到 Gateway 配置开启了 request_logging,因此可以在 Kibana Dashboard 里面的 INFINI Gateway Dashboard 查看请求信息,如下图:
注意,上面图中的请求速率是 _bulk 请求的速率,不是索引速率
总结
从测试结果来看,相同环境下,用 Logstash elasticsearch output 输出数据到 Gateway 的方式比 Logstash elasticsearch output 直接到 ES 的方式速率快了4倍,不得不说这速率是真的杠杠的。至于能不能通过参数调优再提升速率呢?大家有兴趣的自己下载测试吧!最后感谢 medcl 大神出品。
最近看到 INFINI Gateway 新增了一个 bulk_reshuffle filter, 于是便简单地测试一下这个功能。(Gateway 下载地址 以及 参考文档)
测试机器配置
系统 | 处理器 | 内存 |
---|---|---|
Macos | 2 GHz 四核Intel Core i5 | 16 GB |
测试所需软件及版本
- Elasticsearch 7.10
- Kibana 7.10
- INFINI Gateway 最新版本
- Logstash 7.10
- Metricbeat 7.10
本文就省略以上软件的下载和安装步骤了。 另外本文中测试 Elasticsearch 集群含两个节点,每个节点配置内存都为 1GB ,其他参数均为默认。
测试步骤
准备测试数据文件
本文测试数据文件 nginx_mock_log ,文件中每行结构如下:
{"timestamp":1611540661651,"method":"POST","msg":"mock log"}
大概一千多万条
Logstatsh 使用 Input file 模式直接输出数据到 Elasticsearch
编辑 Logstash 配置 test.conf 如下:
input{
file {
path => ["/test/nginx_mock_log"]
type => "file_monitor"
start_position => "beginning"
}
}
output{
elasticsearch {
hosts => ["localhost:9200"]
index => "nginx_mock_log"
http_compression => false
}
}
在 kibana 中创建索引 nginx_mock_log ,将主分片设置为2(为了体现出 Gateway的性能优势, 主分片数应设置大于1), 配置如下:
PUT nginx_mock_log
{
"mappings" : {
"properties" : {
"@timestamp" : {
"type" : "date"
},
"@version" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"host" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"message" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"path" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"type" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
}
}
},
"settings" : {
"number_of_shards" : "2"
}
}
运行 Logstash
/usr/local/logstash/bin/logstash -f test.conf
打开 Kibana Stack Monitorning 查看 Indexing Rate 监控指标如下图:
从图中可以看到索引速率基本保持在4300/s 上下
Logstatsh 使用 Input file 模式输出数据到 Gateway
进入 Kibana 删除索引 nginx_mock_log 并重建
DELETE nginx_mock_log
PUT nginx_mock_log
{
"mappings" : {
"properties" : {
"@timestamp" : {
"type" : "date"
},
"@version" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"host" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"message" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"path" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"type" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
}
}
},
"settings" : {
"number_of_shards" : "2"
}
}
修改 Logstash 配置 test.conf 如下:
input{
file {
path => ["/test/nginx_mock_log"]
type => "file_monitor"
start_position => "beginning"
}
}
output{
elasticsearch {
hosts => ["localhost:8000"]
index => "nginx_mock_log"
http_compression => false
}
}
修改 Gateway 配置文件 gateway.yaml 如下:
path.data: data
path.logs: log
entry:
- name: es_gateway #your gateway endpoint
enabled: true
router: default
network:
binding: localhost:8000
reuse_port: true #you can start multi gateway instance, they share same port, to full utilize system's resources
flow:
- name: bulk_es_test
filter: #comment out any filter sections, like you don't need cache or rate-limiter
- name: bulk_reshuffle
parameters:
elasticsearch: dev
level: node
mode: async
- name: elasticsearch
parameters:
elasticsearch: dev
refresh:
enabled: true
interval: 30s
- name: request_logging
filter:
- name: request_logging
parameters:
queue_name: request_logging
router:
- name: default
default_flow: bulk_es_test
tracing_flow: request_logging
elasticsearch:
- name: dev
enabled: true
endpoint: http://localhost:9200 # if your elasticsearch is using https, your gateway should be listen on as https as well
basic_auth: #used to discovery full cluster nodes, or check elasticsearch's health and versions
username: elastic
password: yV6syH3KLt4DxqMlCyag
discovery: # auto discovery elasticsearch cluster nodes
enabled: true
refresh:
enabled: true
modules:
- name: elastic
enabled: true
elasticsearch: dev
store:
enabled: true
orm:
enabled: true
init_template: true
template_name: ".infini-default1"
index_prefix: "gateway_"
- name: pipeline
enabled: true
runners:
- name: nodes_index
enabled: true
max_go_routine: 2
threshold_in_ms: 0
timeout_in_ms: 5000
pipeline_id: bulk_request_ingest
- name: request_logging_test_name
enabled: true
max_go_routine: 2
threshold_in_ms: 0
timeout_in_ms: 5000
pipeline_id: request_logging_index
pipelines:
- name: bulk_request_ingest
start:
joint: bulk_indexing
enabled: true
parameters:
elasticsearch: "dev"
timeout: "5s"
worker_size: 10
bulk_size_in_mb: 1 #in MB
- name: request_logging_index
start:
joint: json_indexing
enabled: true
parameters:
index_name: "gateway_requests"
elasticsearch: "dev"
input_queue: "request_logging"
timeout: "5s"
worker_size: 10
bulk_size_in_mb: 1 #in MB
queue:
min_msg_size: 1
max_msg_size: 5000000000
max_bytes_per_file: 53687091200
sync_every_records: 100000 # sync by records count
sync_timeout_in_ms: 10000 # sync by time in million seconds
write_chan_buffer: 1000
read_chan_buffer: 1000
以上各配置节点含义,请参考 Gateway 文档
启动 Gateway
./gateway
删除 Logstash data 目录
rm -rf /usr/local/logstash/data
启动 Logstash
/usr/local/logstash/bin/logstash -f test.conf
打开 Kibana Stack Monitorning 查看 Indexing Rate 监控指标如下图:
从上图后半部分可以看到索引速率可以保持在 25000/s 上下(一会儿的功夫,一千多万条数据导入ES完事了)
前面看到 Gateway 配置开启了 request_logging,因此可以在 Kibana Dashboard 里面的 INFINI Gateway Dashboard 查看请求信息,如下图:
注意,上面图中的请求速率是 _bulk 请求的速率,不是索引速率
总结
从测试结果来看,相同环境下,用 Logstash elasticsearch output 输出数据到 Gateway 的方式比 Logstash elasticsearch output 直接到 ES 的方式速率快了4倍,不得不说这速率是真的杠杠的。至于能不能通过参数调优再提升速率呢?大家有兴趣的自己下载测试吧!最后感谢 medcl 大神出品。
收起阅读 »Elastic:开放公开,火力全开(第二部分)
我们即将把根据 Apache 2.0 许可授权的 Elasticsearch 和 Kibana 的源代码变更为双重许可模式(即 SSPL 1.0 和 Elastic 许可),以便用户选择适合自己的许可。通过这一许可协议的变更,这样既能确保我们的社区和客户继续以免费开放的方式使用、修改和重新分发代码,又能开展基于代码的协作,而且还可以限制云服务提供商在不向社区提供任何回馈的情况下,将 Elasticsearch 和 Kibana 作为一项对外提供的服务,从而保护我们在开发免费及开放产品方面的持续投资。此次变更将适用于 Elasticsearch 和 Kibana 的所有维护分支,并从我们即将发布的 7.11 版本开始生效。我们的发行版将继续使用与三年前相同的 Elastic 许可。
此次源代码许可协议变更对绝大部分免费使用默认分发版的社区用户没有影响,也不会影响我们的云服务客户或自管型软件客户。
近年来,市场已发生了很大的变化,社区开始逐渐的认识到,开源公司只有更好地保护了自己的软件,才能够实现持续创新和进行必要的投资。随着很多公司不断的转型到 SaaS 产品,有些云服务提供商已经采用了开源产品,并在不向社区提供任何回馈的情况下,将其作为一项对外提供的服务。在大约三年前,我们开放了商业代码,并将他们全面的开放,所有这些都是在 Elastic 许可下进行的,从而让我们现在可以采用 SSPL 和 Elastic 许可的双重授权许可策略,这对我们来说是水到渠成的一步。这与近年来许多其他开源公司(包括开发 SSPL 的 MongoDB)的做法类似。SSPL 虽然允许自由随意地使用及修改产品源代码,但有一个基本要求,也就是,在 SSPL 协议下,如果您将产品作为服务对外提供,则必须同时公开发布所做出的任何修改,以及您自己构建的管理层源代码。
我们的开源之旅
我个人的开源之旅可以追溯到很久以前。2005 年,我开源了我的第一个项目 — Compass,在 Apache Lucene 的基础上提供了一个 Java 框架,那时我在为我妻子开发一个关于菜谱的应用。在接下来的五年间里,我投入了无数个周末和夜晚来完善这个项目,从编写代码到帮助用户解决故障、功能等方面的各种问题。
我并没有细想自己做这件事的目的是什么,尤其是我还有一份已经沦为“副业”的工作,但我醉心于此,因为这是能产生如此积极影响的机会 — 尝试通过开源的力量,打造出一款优质产品,而且更重要的是,围绕这款产品构建起一个良好的社区。
2009 年,我决定重新再来一次,于是开始编写一个全新的项目,它就是 Elasticsearch。我花了很多个夜晚和周末来构建这个项目,并在 2010 年开放了源代码。我甚至辞掉了工作,决定全力以赴。通过编写代码、在 GitHub 上写博客、发邮件及通过 IRC 聊天工具,为用户提供帮助。
而当我们在 2012 年成立 Elastic 公司时,也将这种精神带到了我们的公司。我们在免费开放的产品上投入了大量资金,并支持用户社区的快速发展。我们从单纯的 Elasticsearch 扩展到 Kibana、Logstash、Beats,现在,Elastic Stack 中内置了一系列的解决方案:Elastic 企业搜索、可观测性和安全。
我们有成熟的产品,围绕这些产品培育了充满活力的社区,并专注于为用户提供最大价值。今天,我们有数百名工程师,他们每天的工作内容就是努力让我们的产品变得更好。而且我们还有成千上万的社区成员参与其中,帮助我们取得共同成功。
我为我们建立的公司感到骄傲,更为我们赢得用户的信任而深感责任重大。我们从成立之初就是一家开放、透明的公司,并且我们在各项决策中也一直坚持全心全意为社区和广大用户服务。
详细阅读,请参阅文章 https://elasticstack.blog.csdn ... 38956
我们即将把根据 Apache 2.0 许可授权的 Elasticsearch 和 Kibana 的源代码变更为双重许可模式(即 SSPL 1.0 和 Elastic 许可),以便用户选择适合自己的许可。通过这一许可协议的变更,这样既能确保我们的社区和客户继续以免费开放的方式使用、修改和重新分发代码,又能开展基于代码的协作,而且还可以限制云服务提供商在不向社区提供任何回馈的情况下,将 Elasticsearch 和 Kibana 作为一项对外提供的服务,从而保护我们在开发免费及开放产品方面的持续投资。此次变更将适用于 Elasticsearch 和 Kibana 的所有维护分支,并从我们即将发布的 7.11 版本开始生效。我们的发行版将继续使用与三年前相同的 Elastic 许可。
此次源代码许可协议变更对绝大部分免费使用默认分发版的社区用户没有影响,也不会影响我们的云服务客户或自管型软件客户。
近年来,市场已发生了很大的变化,社区开始逐渐的认识到,开源公司只有更好地保护了自己的软件,才能够实现持续创新和进行必要的投资。随着很多公司不断的转型到 SaaS 产品,有些云服务提供商已经采用了开源产品,并在不向社区提供任何回馈的情况下,将其作为一项对外提供的服务。在大约三年前,我们开放了商业代码,并将他们全面的开放,所有这些都是在 Elastic 许可下进行的,从而让我们现在可以采用 SSPL 和 Elastic 许可的双重授权许可策略,这对我们来说是水到渠成的一步。这与近年来许多其他开源公司(包括开发 SSPL 的 MongoDB)的做法类似。SSPL 虽然允许自由随意地使用及修改产品源代码,但有一个基本要求,也就是,在 SSPL 协议下,如果您将产品作为服务对外提供,则必须同时公开发布所做出的任何修改,以及您自己构建的管理层源代码。
我们的开源之旅
我个人的开源之旅可以追溯到很久以前。2005 年,我开源了我的第一个项目 — Compass,在 Apache Lucene 的基础上提供了一个 Java 框架,那时我在为我妻子开发一个关于菜谱的应用。在接下来的五年间里,我投入了无数个周末和夜晚来完善这个项目,从编写代码到帮助用户解决故障、功能等方面的各种问题。
我并没有细想自己做这件事的目的是什么,尤其是我还有一份已经沦为“副业”的工作,但我醉心于此,因为这是能产生如此积极影响的机会 — 尝试通过开源的力量,打造出一款优质产品,而且更重要的是,围绕这款产品构建起一个良好的社区。
2009 年,我决定重新再来一次,于是开始编写一个全新的项目,它就是 Elasticsearch。我花了很多个夜晚和周末来构建这个项目,并在 2010 年开放了源代码。我甚至辞掉了工作,决定全力以赴。通过编写代码、在 GitHub 上写博客、发邮件及通过 IRC 聊天工具,为用户提供帮助。
而当我们在 2012 年成立 Elastic 公司时,也将这种精神带到了我们的公司。我们在免费开放的产品上投入了大量资金,并支持用户社区的快速发展。我们从单纯的 Elasticsearch 扩展到 Kibana、Logstash、Beats,现在,Elastic Stack 中内置了一系列的解决方案:Elastic 企业搜索、可观测性和安全。
我们有成熟的产品,围绕这些产品培育了充满活力的社区,并专注于为用户提供最大价值。今天,我们有数百名工程师,他们每天的工作内容就是努力让我们的产品变得更好。而且我们还有成千上万的社区成员参与其中,帮助我们取得共同成功。
我为我们建立的公司感到骄傲,更为我们赢得用户的信任而深感责任重大。我们从成立之初就是一家开放、透明的公司,并且我们在各项决策中也一直坚持全心全意为社区和广大用户服务。
详细阅读,请参阅文章 https://elasticstack.blog.csdn ... 38956 收起阅读 »
社区日报 第1176期 (2020-01-21)
https://blog.mimacom.com/elast ... nges/
2.使用Elasticsearch-rails对索引进行非规范化(梯子)
https://medium.com/wolox/why-a ... 03c7c
3.Elastic stack 中的 kibana Map
https://spoon-elastic.com/all- ... -7-6/
编辑:寂寞的烟
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
https://blog.mimacom.com/elast ... nges/
2.使用Elasticsearch-rails对索引进行非规范化(梯子)
https://medium.com/wolox/why-a ... 03c7c
3.Elastic stack 中的 kibana Map
https://spoon-elastic.com/all- ... -7-6/
编辑:寂寞的烟
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup 收起阅读 »
社区日报 第1180期 (2021-01-25)
https://netflixtechblog.com/im ... 0b42a
2. 基于搜索历史的个性化搜索服务
https://www.elastic.co/blog/pe ... story
3. 可能遇见的问题及详解
https://mp.weixin.qq.com/s/EcCmujV9HhQRvorppXLepQ
编辑:wt
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
https://netflixtechblog.com/im ... 0b42a
2. 基于搜索历史的个性化搜索服务
https://www.elastic.co/blog/pe ... story
3. 可能遇见的问题及详解
https://mp.weixin.qq.com/s/EcCmujV9HhQRvorppXLepQ
编辑:wt
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup 收起阅读 »
社区日报 第1179期 (2021-01-24)
https://terrastruct.com/blog/e ... gram/
2.如何在Docker Swarm上轻松设置ELK。
https://blog.creekorful.com/20 ... warm/
3.Google已关闭对Chromium同步功能的访问权限。
https://bodhi.fedoraproject.or ... 282e5
编辑:至尊宝
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
https://terrastruct.com/blog/e ... gram/
2.如何在Docker Swarm上轻松设置ELK。
https://blog.creekorful.com/20 ... warm/
3.Google已关闭对Chromium同步功能的访问权限。
https://bodhi.fedoraproject.or ... 282e5
编辑:至尊宝
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup 收起阅读 »
社区日报 第1178期 (2021-01-23)
1.使用word_delimiter构建自定义分析器
https://stackoverflow.com/questions/28499140/regular-expression-in-elasticsearch
2.使用glove测试es向量相似搜索
https://blog.mimacom.com/elastic-cosine-similarity-word-embeddings/
3.Lucene 中的 Stored Fields 存储优化
1.使用word_delimiter构建自定义分析器
https://stackoverflow.com/questions/28499140/regular-expression-in-elasticsearch
2.使用glove测试es向量相似搜索
https://blog.mimacom.com/elastic-cosine-similarity-word-embeddings/
3.Lucene 中的 Stored Fields 存储优化
https://www.infoq.cn/article/rgsyhhhckwdv4b65csyx
收起阅读 »社区日报 第1177期 (2020-01-22)
https://developer.aliyun.com/t ... 31778
2、好不好奇?各种Elasticsearch专利都被抢注申请
http://www.soopat.com/Home/Res ... Q%3DY
3、深入解读:Elasticsearch Filter VS Query
https://towardsdatascience.com ... bd4c0
编辑:铭毅天下
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
https://developer.aliyun.com/t ... 31778
2、好不好奇?各种Elasticsearch专利都被抢注申请
http://www.soopat.com/Home/Res ... Q%3DY
3、深入解读:Elasticsearch Filter VS Query
https://towardsdatascience.com ... bd4c0
编辑:铭毅天下
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup 收起阅读 »
Terms lookup query - 关联两个不同索引的搜索
GET my-index-000001/_search
{
"query": {
"term": {
"color": {
"value": "blue"
}
}
}
}
我们想通过一个搜索的命令来实现,那么我们该如何完成这样的操作呢?
在今天的文章中,我将使用 Terms lookup query 来展示如何实现这样的功能。
详细阅读,请参阅文章 https://elasticstack.blog.csdn ... 57984
GET my-index-000001/_search
{
"query": {
"term": {
"color": {
"value": "blue"
}
}
}
}
我们想通过一个搜索的命令来实现,那么我们该如何完成这样的操作呢?
在今天的文章中,我将使用 Terms lookup query 来展示如何实现这样的功能。
详细阅读,请参阅文章 https://elasticstack.blog.csdn ... 57984 收起阅读 »
ES 7.4.2的Sort Script查询性能比较差
我们的es从5.3.2升级到7.4.1,遇到一个脚本的性能问题。同样的一段Sort Script脚本, 在ES 7.4.1的执行要比ES 5.3.2要慢至少一倍。一个主要的特点就是departure_city_ids可能会很多,通过doc获取一个deparature_city_ids的数据, 数据的大小最大的时候达到两千多个左右。Type为keyword类型。
- 具体的sort script脚本实例已经贴在下面了。
脚本实例:
"sort": [
{
"_script": {
"script": {
"inline": "return doc['departure_city_ids'].size()",
"lang": "painless"
},
"type": "number",
"order": "desc"
}
}
]
我们的es从5.3.2升级到7.4.1,遇到一个脚本的性能问题。同样的一段Sort Script脚本, 在ES 7.4.1的执行要比ES 5.3.2要慢至少一倍。一个主要的特点就是departure_city_ids可能会很多,通过doc获取一个deparature_city_ids的数据, 数据的大小最大的时候达到两千多个左右。Type为keyword类型。
- 具体的sort script脚本实例已经贴在下面了。
脚本实例:
"sort": [
{
"_script": {
"script": {
"inline": "return doc['departure_city_ids'].size()",
"lang": "painless"
},
"type": "number",
"order": "desc"
}
}
]
收起阅读 »