身安不如心安,屋宽不如心宽 。

Elasticsearch 的新 range 丰富策略使上下文数据分析更上一层楼 - 7.16

Elasticsearch 7.16 引入了一个新的丰富策略:range。 range 策略允许将传入文档中的数字、日期或 IP 地址与丰富索引中相同类型的范围相匹配。 能够与 IP 范围进行匹配在安全用例中特别有用,其中额外的元数据可用于进一步细化检测规则。 由于我们已经在文档中添加了一个使用 IP 范围的示例,因此我们将在此处使用 date_range 类型进行示例。
 

enrich.png

 
在之前我的文章 “Elasticsearch:enrich processor (7.5发行版新功能)” 已经详细描述了 geo_match 及 match 的丰富策略。详细使用,请阅读那篇文章。
 
更多阅读,请参阅 https://elasticstack.blog.csdn ... .5502
继续阅读 »
Elasticsearch 7.16 引入了一个新的丰富策略:range。 range 策略允许将传入文档中的数字、日期或 IP 地址与丰富索引中相同类型的范围相匹配。 能够与 IP 范围进行匹配在安全用例中特别有用,其中额外的元数据可用于进一步细化检测规则。 由于我们已经在文档中添加了一个使用 IP 范围的示例,因此我们将在此处使用 date_range 类型进行示例。
 

enrich.png

 
在之前我的文章 “Elasticsearch:enrich processor (7.5发行版新功能)” 已经详细描述了 geo_match 及 match 的丰富策略。详细使用,请阅读那篇文章。
 
更多阅读,请参阅 https://elasticstack.blog.csdn ... .5502 收起阅读 »

社区日报 第1318期 (2022-01-24)

 1.使用 Django 访问 Elasticsearch 的简单方法(自备梯子)
https://medium.com/free-code-c ... c16cb

2.使用 Filebeat 将 Mysql 日志发送至 ES(自备梯子)
https://alibaba-cloud.medium.c ... 567f8

3.从 Kubernetes 收集日志——fluentd vs filebeat(自备梯子)
https://itnext.io/logz-io-coll ... 08cfe

编辑:pangying
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
继续阅读 »
 1.使用 Django 访问 Elasticsearch 的简单方法(自备梯子)
https://medium.com/free-code-c ... c16cb

2.使用 Filebeat 将 Mysql 日志发送至 ES(自备梯子)
https://alibaba-cloud.medium.c ... 567f8

3.从 Kubernetes 收集日志——fluentd vs filebeat(自备梯子)
https://itnext.io/logz-io-coll ... 08cfe

编辑:pangying
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup 收起阅读 »

社区日报 第1317期 (2022-01-23)

1.ES大数据量同步,如何又快又稳?
https://juejin.cn/post/6897126942537941005

2.ES多线程调用,线程阻塞超时问题解决
https://blog.csdn.net/sej520/a ... 25842

3.ES查询查询超市问题排查
https://segmentfault.com/a/1190000021669853

编辑:cyberdak
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
继续阅读 »
1.ES大数据量同步,如何又快又稳?
https://juejin.cn/post/6897126942537941005

2.ES多线程调用,线程阻塞超时问题解决
https://blog.csdn.net/sej520/a ... 25842

3.ES查询查询超市问题排查
https://segmentfault.com/a/1190000021669853

编辑:cyberdak
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup 收起阅读 »

社区日报 第1315期 (2021-01-21)


1、使用 TheHive、Cortex 和 Elasticsearch 实现 SOC
https://blog.devgenius.io/soc- ... 19f0c
2、使用 Oura + Elasticsearch + React 的开源项目
https://github.com/txpipe/cip25-search-engine
3、Elasticsearch 时序数据分析实战
https://dzone.com/articles/tim ... -java

编辑:铭毅天下
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
继续阅读 »

1、使用 TheHive、Cortex 和 Elasticsearch 实现 SOC
https://blog.devgenius.io/soc- ... 19f0c
2、使用 Oura + Elasticsearch + React 的开源项目
https://github.com/txpipe/cip25-search-engine
3、Elasticsearch 时序数据分析实战
https://dzone.com/articles/tim ... -java

编辑:铭毅天下
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup 收起阅读 »

社区日报 第1314期 (2021-01-20)

1.创建一个 autocomplete 输入系统 - 前端 + 后端
https://mp.weixin.qq.com/s/uqchdrkhdFsof0ZFtECujg
2.详解 Elasticsearch 中的路由机制
http://niyanchun.com/routing-in-es.html
3.Elasticsearch 与SQL-style Join
https://mp.weixin.qq.com/s/yg60lZlBvIUKnHmGp5deDQ

编辑:Se7en
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
继续阅读 »
1.创建一个 autocomplete 输入系统 - 前端 + 后端
https://mp.weixin.qq.com/s/uqchdrkhdFsof0ZFtECujg
2.详解 Elasticsearch 中的路由机制
http://niyanchun.com/routing-in-es.html
3.Elasticsearch 与SQL-style Join
https://mp.weixin.qq.com/s/yg60lZlBvIUKnHmGp5deDQ

编辑:Se7en
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup 收起阅读 »

社区日报 第1313期 (2021-01-19)

1. Elasticsearch压测之Esrally压测标准
https://cloud.tencent.com/deve ... 01555
2. 如何正确处理 Elasticsearch ingest pipeline故障(需要梯子)
https://medium.zenika.com/how- ... a1c1f
3. Elasticsearch:深入理解 Dissect ingest processor
https://elasticstack.blog.csdn ... 20145

编辑:kin122
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
继续阅读 »
1. Elasticsearch压测之Esrally压测标准
https://cloud.tencent.com/deve ... 01555
2. 如何正确处理 Elasticsearch ingest pipeline故障(需要梯子)
https://medium.zenika.com/how- ... a1c1f
3. Elasticsearch:深入理解 Dissect ingest processor
https://elasticstack.blog.csdn ... 20145

编辑:kin122
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup 收起阅读 »

Elasticsearch 与SQL-style Join 前篇

Elasticsearch 与SQL-style Join 前篇

1.上下文

Elasticsearch(后面简称ES)作为火热的开源&分布式&Json文档形式的搜索引擎在互联网行业被广泛应用. 作为一种NoSQL数据存储服务, ES的侧重点放在了扩展性(Scalability) 与可用性(Availability)上, 提供了极快的搜索与索引文档能力(省略各种对ES的赞美.....就如同你知道的.....主要提供搜索的能力!) 然而, 来自SQL世界的我们, 日常被各种关系性数据充斥着, 使用ES常常疑惑为什么大量MySql中适用的法则在ES中行不通: 不同于SQL的ES DSL语言风格, 搜到/搜不到想要的结果集, 复杂的聚合分析,众多正在不断演进的新功能与永远记不完的APIs....... 本文不会对ES的基本功能作太多的讲解, 侧重放在了对SQL中的join查询与ES提供的join方案的对比与分析上, 基于本人的实践经验, 提供了数种可行的跨索引关联查询方案

本文分为"前篇"与"后篇" ,分别覆盖了不同的ES中实现SQL-style join的技术方案

2.引子

2.1 建议

  • 不要用Mysql上的规则去理解一款NoSql DB(Elastic search)
  • Join查询与简单的"向多个索引查询数据"并不等价: join查询体现一个"数据关联",后文将重点描述
  • 有时候, 为了达到某些效果, 可能意味着"pay some price" (e.g 空间换时间)

2.2 Join查询

开始正文前, 聊聊什么是join查询, join查询在绝大数情况下是SQL中的概念, SQL-style join查询是体现关系型数据库中"关系"的重要方式, 通过驱动表与被驱动表的字段关联, 表与表之间建立了联系方式, 并可以把多个表中的字段值一起返回到结果集:

  • 表与表之间有关联性(由连接字段确定)
  • 结果集中体现了这种关联性

看到这....或许你会疑惑为什么在解释join查询时反复强调"关联"二字, 相信你应该熟悉SQL中的笛卡尔积现象, 如果不通过连接字段对数据进行筛选, 那么表与表之间连接后产生的"宽表"的数据量会是一个很恐怖的数字(表A行数X表B行数X表C行数.....以此类推), 业务往往需要对产生的结果集进行二次数据筛选, 最后才能从大量的数据中找到少量感兴趣的信息. 而通过指定SQL-style中的join关联关系(e.g table A.字段1 =tableB.字段1)就能在SQL服务中就完成数据筛选, 并且返回的结果集中体现了这种关联性, 降低了业务上筛选相关的工作量.

作为一款 Nosql 且 Schemaless的数据存储, ElasticSearch没有对数据的结构进行强限制, 对客户端而言,返回的结果集都是由弱类型的json对象组成. ES没有像SQL DB那样做到对join查询的友好支持. 但是数据与数据之间的关联在ES中同样非常重要!(或许在任何数据存储服务中都重要). 本文前后篇通过对比讨论 "denormalization(反范式)" , "应用层join", "ES nested query" ,"ES has parent/child query", "ES服务层join(open distro开源生态下)"这些技术的方式(部分将在后篇描述), 探讨join查询在不同环境下的有效解决方案.

3. 方案

3.0 前言: 需解决的问题

如果需要在ES中实现一个SQL:

select * from tablea a  join tableb b 
on a.field1 =b.field1 order by a.create_time desc

等价查询效果, 并且应用层能通过分页的方式滚动查询到所有数据

3.1 方案一: denormalization(反范式)

这可能是最"直接"的方案了, 通过修改数据模型来“flatten”数据,每个ES文档在被index时就已经有了所需要的全部关联数据.

如果是搭建异构索引场景(可理解为RDS从库), 根据关联关系的不同(1 to N, N to M)索引的文档量最高将会是 2乘以 tablea行数乘以 tableb行数(有点笛卡尔积的感觉). Denormalization通过建立"超级宽"的索引维系了1 to N 或 N to M的关联关系, 应用层与ES不需要做任何join处理, 因为一个文档已经拥有了客户端需要的全部数据(数据层面上已经做到了聚合)

对于平时与关系型数据库打交道的童鞋而言, 建 "超级宽表" 映射的索引与数据冗余可能是一件"非正常"的行为, 第一反应就是数据的冗余与空间资源浪费. 但是这种方案的确是目前广泛使用的建立数据关联关系的解决方案(如同前文说的------不要用Mysql上的规则去理解ES).

3.1.1 优势

  • 应用端 & ES端都不需要做任何join操作(一个ES文档有全部客户端想要的数据)
  • 分布式环境下因聚合结果集相关操作产生的延迟问题得到有效解决
  • 在空间资源足够下, 方案可行性高(至少有信心吼一句"能做到")

    3.1.2 挑战

  • 数据的冗余与空间资源浪费(空间换时间)
  • 如何梳理业务模型与flatten数据: 关系型数据中通过外键,schema约束, 查询语句(join)等方式建立的关联关系要被体现到ES的索引mapping中
  • 应用层(访问ES的服务)需要的编码调整(有些工程会在dao层做统一适配处理)
  • 更新操作涉及到的数据大幅度增加: 原本一个涉及单表单行update SQL可能会牵扯到多个文档中的某个字段, 且每个文档占用的空间资源更高
  • 新增文档的频率会更高: 理由同上

总结: Denormation方案的通用性高, 并且能够满足快速搜索的需求(最快的查询关联数据的方式), 但是额外的存储资源使用带来的相应开销问题与数据模型梳理上的问题会带来挑战

3.2 方案二: ES SQL join(open distro开源生态)

xpack 增加了有限度的SQL支持xpack1

然而...不支持join语法....xpack2

安装扩展插件获取更强的SQL支持能力(open distro)

LINK 更为强大的SQL支持(包括join语法) open_distro 挑战:

  • 额外的ES插件(第三方插件对ES不同版本的兼容性?)
  • 业务方调整(语句改为SQL-style, 且要使用open distro提供的JDBC相关依赖)
  • open distro是一整套ES工具集(AWS上自带集成)
  • 对该产品特性的学习LINK

3.3 方案三: 应用层join

通过应用工程对不同索引的多次访问,在组装结果集的过程中建立数据的关联关系

3.3.1 实现方式

可以仿照MySQL的join实现方式: 例如为了实现

select * from tablea a  join tableb b 
on a.field1 =b.field1 where a.field2 in ('value1','value2','value3') order by a.create_time desc

这句SQL的等效查询

应用层可以:

  • 1 选择 tablea 对应的异构索引作为驱动索引, 通过结构化查询, 获取field2 为'value1','value2','value3' 的文档中_id值(N个)
  • 2 以文档field1作为连接条件, 从被驱动索引(tableb对应的异构索引)中找到字段field1满足条件( a.field1 =b.field1)的文档
  • 3 用获取到的文档拼接结果集返回

如果配合ES terms-lookup 则为:

/**从tablea fetch符合条件的文档集**/
GET tablea/_search
{
  "query": {
    "terms": {
      "field2": [
        "value1",
        "value2",
        "value3"
      ]
    }
  }
}

/**假使仅获得一个文档且_id值为6666**/

GET tableb/_search
{
  "query": {
    "terms": {
      "field1": {
              "index" : "tablea",
                "type" : "_doc",
                "id" : "6666",
                "path" : "field1"
      }
    }
  }
}
/**利用ES terms-lookup进行连接查询**/

以上查询在应用层可用ES high-level-client实现, 数据的拼接,过滤, 循环查询等挑战都需要在应用层克服(难)

3.3.2 该方案面临几个挑战

  • 如果文档数过多(被驱动表/驱动表中任意一张表获取的文档过多) -> 内存,网络等资源占用过高
  • 应用层join引发的多次请求
  • 应用层join引发的ES服务端压力
  • 应用层代码的改动: 驱动表的选择, join的实现, 应用层缓存数据的压力...
  • 一套稳定的join机制的实现会很复杂......

4. End

本文分为前篇与后篇, 我会在后篇文章中对这些技术进行进一步描述与对比, 并且引入可实践的方案.

原稿作者:Yukai糖在江湖
原稿链接:https://blog.csdn.net/fanduifandui/article/details/117264084

继续阅读 »

Elasticsearch 与SQL-style Join 前篇

1.上下文

Elasticsearch(后面简称ES)作为火热的开源&分布式&Json文档形式的搜索引擎在互联网行业被广泛应用. 作为一种NoSQL数据存储服务, ES的侧重点放在了扩展性(Scalability) 与可用性(Availability)上, 提供了极快的搜索与索引文档能力(省略各种对ES的赞美.....就如同你知道的.....主要提供搜索的能力!) 然而, 来自SQL世界的我们, 日常被各种关系性数据充斥着, 使用ES常常疑惑为什么大量MySql中适用的法则在ES中行不通: 不同于SQL的ES DSL语言风格, 搜到/搜不到想要的结果集, 复杂的聚合分析,众多正在不断演进的新功能与永远记不完的APIs....... 本文不会对ES的基本功能作太多的讲解, 侧重放在了对SQL中的join查询与ES提供的join方案的对比与分析上, 基于本人的实践经验, 提供了数种可行的跨索引关联查询方案

本文分为"前篇"与"后篇" ,分别覆盖了不同的ES中实现SQL-style join的技术方案

2.引子

2.1 建议

  • 不要用Mysql上的规则去理解一款NoSql DB(Elastic search)
  • Join查询与简单的"向多个索引查询数据"并不等价: join查询体现一个"数据关联",后文将重点描述
  • 有时候, 为了达到某些效果, 可能意味着"pay some price" (e.g 空间换时间)

2.2 Join查询

开始正文前, 聊聊什么是join查询, join查询在绝大数情况下是SQL中的概念, SQL-style join查询是体现关系型数据库中"关系"的重要方式, 通过驱动表与被驱动表的字段关联, 表与表之间建立了联系方式, 并可以把多个表中的字段值一起返回到结果集:

  • 表与表之间有关联性(由连接字段确定)
  • 结果集中体现了这种关联性

看到这....或许你会疑惑为什么在解释join查询时反复强调"关联"二字, 相信你应该熟悉SQL中的笛卡尔积现象, 如果不通过连接字段对数据进行筛选, 那么表与表之间连接后产生的"宽表"的数据量会是一个很恐怖的数字(表A行数X表B行数X表C行数.....以此类推), 业务往往需要对产生的结果集进行二次数据筛选, 最后才能从大量的数据中找到少量感兴趣的信息. 而通过指定SQL-style中的join关联关系(e.g table A.字段1 =tableB.字段1)就能在SQL服务中就完成数据筛选, 并且返回的结果集中体现了这种关联性, 降低了业务上筛选相关的工作量.

作为一款 Nosql 且 Schemaless的数据存储, ElasticSearch没有对数据的结构进行强限制, 对客户端而言,返回的结果集都是由弱类型的json对象组成. ES没有像SQL DB那样做到对join查询的友好支持. 但是数据与数据之间的关联在ES中同样非常重要!(或许在任何数据存储服务中都重要). 本文前后篇通过对比讨论 "denormalization(反范式)" , "应用层join", "ES nested query" ,"ES has parent/child query", "ES服务层join(open distro开源生态下)"这些技术的方式(部分将在后篇描述), 探讨join查询在不同环境下的有效解决方案.

3. 方案

3.0 前言: 需解决的问题

如果需要在ES中实现一个SQL:

select * from tablea a  join tableb b 
on a.field1 =b.field1 order by a.create_time desc

等价查询效果, 并且应用层能通过分页的方式滚动查询到所有数据

3.1 方案一: denormalization(反范式)

这可能是最"直接"的方案了, 通过修改数据模型来“flatten”数据,每个ES文档在被index时就已经有了所需要的全部关联数据.

如果是搭建异构索引场景(可理解为RDS从库), 根据关联关系的不同(1 to N, N to M)索引的文档量最高将会是 2乘以 tablea行数乘以 tableb行数(有点笛卡尔积的感觉). Denormalization通过建立"超级宽"的索引维系了1 to N 或 N to M的关联关系, 应用层与ES不需要做任何join处理, 因为一个文档已经拥有了客户端需要的全部数据(数据层面上已经做到了聚合)

对于平时与关系型数据库打交道的童鞋而言, 建 "超级宽表" 映射的索引与数据冗余可能是一件"非正常"的行为, 第一反应就是数据的冗余与空间资源浪费. 但是这种方案的确是目前广泛使用的建立数据关联关系的解决方案(如同前文说的------不要用Mysql上的规则去理解ES).

3.1.1 优势

  • 应用端 & ES端都不需要做任何join操作(一个ES文档有全部客户端想要的数据)
  • 分布式环境下因聚合结果集相关操作产生的延迟问题得到有效解决
  • 在空间资源足够下, 方案可行性高(至少有信心吼一句"能做到")

    3.1.2 挑战

  • 数据的冗余与空间资源浪费(空间换时间)
  • 如何梳理业务模型与flatten数据: 关系型数据中通过外键,schema约束, 查询语句(join)等方式建立的关联关系要被体现到ES的索引mapping中
  • 应用层(访问ES的服务)需要的编码调整(有些工程会在dao层做统一适配处理)
  • 更新操作涉及到的数据大幅度增加: 原本一个涉及单表单行update SQL可能会牵扯到多个文档中的某个字段, 且每个文档占用的空间资源更高
  • 新增文档的频率会更高: 理由同上

总结: Denormation方案的通用性高, 并且能够满足快速搜索的需求(最快的查询关联数据的方式), 但是额外的存储资源使用带来的相应开销问题与数据模型梳理上的问题会带来挑战

3.2 方案二: ES SQL join(open distro开源生态)

xpack 增加了有限度的SQL支持xpack1

然而...不支持join语法....xpack2

安装扩展插件获取更强的SQL支持能力(open distro)

LINK 更为强大的SQL支持(包括join语法) open_distro 挑战:

  • 额外的ES插件(第三方插件对ES不同版本的兼容性?)
  • 业务方调整(语句改为SQL-style, 且要使用open distro提供的JDBC相关依赖)
  • open distro是一整套ES工具集(AWS上自带集成)
  • 对该产品特性的学习LINK

3.3 方案三: 应用层join

通过应用工程对不同索引的多次访问,在组装结果集的过程中建立数据的关联关系

3.3.1 实现方式

可以仿照MySQL的join实现方式: 例如为了实现

select * from tablea a  join tableb b 
on a.field1 =b.field1 where a.field2 in ('value1','value2','value3') order by a.create_time desc

这句SQL的等效查询

应用层可以:

  • 1 选择 tablea 对应的异构索引作为驱动索引, 通过结构化查询, 获取field2 为'value1','value2','value3' 的文档中_id值(N个)
  • 2 以文档field1作为连接条件, 从被驱动索引(tableb对应的异构索引)中找到字段field1满足条件( a.field1 =b.field1)的文档
  • 3 用获取到的文档拼接结果集返回

如果配合ES terms-lookup 则为:

/**从tablea fetch符合条件的文档集**/
GET tablea/_search
{
  "query": {
    "terms": {
      "field2": [
        "value1",
        "value2",
        "value3"
      ]
    }
  }
}

/**假使仅获得一个文档且_id值为6666**/

GET tableb/_search
{
  "query": {
    "terms": {
      "field1": {
              "index" : "tablea",
                "type" : "_doc",
                "id" : "6666",
                "path" : "field1"
      }
    }
  }
}
/**利用ES terms-lookup进行连接查询**/

以上查询在应用层可用ES high-level-client实现, 数据的拼接,过滤, 循环查询等挑战都需要在应用层克服(难)

3.3.2 该方案面临几个挑战

  • 如果文档数过多(被驱动表/驱动表中任意一张表获取的文档过多) -> 内存,网络等资源占用过高
  • 应用层join引发的多次请求
  • 应用层join引发的ES服务端压力
  • 应用层代码的改动: 驱动表的选择, join的实现, 应用层缓存数据的压力...
  • 一套稳定的join机制的实现会很复杂......

4. End

本文分为前篇与后篇, 我会在后篇文章中对这些技术进行进一步描述与对比, 并且引入可实践的方案.

原稿作者:Yukai糖在江湖
原稿链接:https://blog.csdn.net/fanduifandui/article/details/117264084

收起阅读 »

社区日报 第1312期 (2021-01-18)

1. 如何使用logstash配合jdbc plugin把数据从PostgreSQL导入ES(科学上网)
https://medium.com/geekculture ... d47a6
2. ES 的索引流程(科学上网)
https://medium.com/swlh/elasti ... e1772
3. ES 里的Flattened 数据类型的介绍(科学上网)
https://alirezadp10.medium.com ... 7e706
编辑:斯蒂文
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
 
继续阅读 »
1. 如何使用logstash配合jdbc plugin把数据从PostgreSQL导入ES(科学上网)
https://medium.com/geekculture ... d47a6
2. ES 的索引流程(科学上网)
https://medium.com/swlh/elasti ... e1772
3. ES 里的Flattened 数据类型的介绍(科学上网)
https://alirezadp10.medium.com ... 7e706
编辑:斯蒂文
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
  收起阅读 »

社区日报 第1311期 (2021-01-17)

 1.使用 Search After  进行分页查询
https://blog.csdn.net/ctwy2913 ... 54652

2.使用 Scroll 进行分页查询
https://cloud.tencent.com/deve ... 65141

3.使用 Post Filter 后置过滤器
https://gaoming.blog.csdn.net/ ... 44680
继续阅读 »
 1.使用 Search After  进行分页查询
https://blog.csdn.net/ctwy2913 ... 54652

2.使用 Scroll 进行分页查询
https://cloud.tencent.com/deve ... 65141

3.使用 Post Filter 后置过滤器
https://gaoming.blog.csdn.net/ ... 44680
收起阅读 »

社区日报 第1310期 (2022-01-16)

1. 使用curl批量导入数据至es
https://blog.csdn.net/u0139856 ... 88613

2.快速入门kibana
https://blog.51cto.com/u_15018708/2647314

3.Elastic Stack超实用技巧 原厂工程师制作视频,带你5分钟玩转各种场景
https://blog.csdn.net/u0136134 ... 1453/

编辑:cyberdak
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
继续阅读 »
1. 使用curl批量导入数据至es
https://blog.csdn.net/u0139856 ... 88613

2.快速入门kibana
https://blog.51cto.com/u_15018708/2647314

3.Elastic Stack超实用技巧 原厂工程师制作视频,带你5分钟玩转各种场景
https://blog.csdn.net/u0136134 ... 1453/

编辑:cyberdak
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup 收起阅读 »

社区日报 第1309期 (2021-01-14)

1、百亿开源公司 Elastic 换帅,原CEO重回CTO
https://www.infoq.cn/article/odbWeMsUKGkq7qOPWcyp
2、使用 Elasticsearch 更好的检索 URL 数据
https://jorgelbg.me/2020/01/be ... arch/
3、MongoDB自动同步 Elasticsearch 插件
https://github.com/mongoosastic/mongoosastic
 
编辑:铭毅天下
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
 
 
继续阅读 »
1、百亿开源公司 Elastic 换帅,原CEO重回CTO
https://www.infoq.cn/article/odbWeMsUKGkq7qOPWcyp
2、使用 Elasticsearch 更好的检索 URL 数据
https://jorgelbg.me/2020/01/be ... arch/
3、MongoDB自动同步 Elasticsearch 插件
https://github.com/mongoosastic/mongoosastic
 
编辑:铭毅天下
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
 
  收起阅读 »

Elasticsearch:使用 Elasticsearch 在键入时实现类似 Linkedin 的搜索

在大多数社交网络中搜索时,你的直接联系人的排名将高于其他用户。 让我们看一下 Linkedin 的搜索,看看我们是否可以用 Elasticsearch 复制类似的东西。在这里也告诉大家一个小秘密:Linkedin 上面的搜索也是使用 Elasticsearch 完成的哦!

请注意,这篇文章仅在你输入建议时处理自动完成/搜索,并且在发送搜索后不会深入搜索搜索结果,从而产生搜索结果页面。

让我们看看 Linkedin 的搜索界面:
 

linkedin.png

所以让我们看看这个搜索响应。 输入是 Philip。 我们将忽略任何非人的搜索结果或建议 - 前 6 条建议(非人)只是向你展示你可能还在搜索什么。

关注人员结果,列表中的最后五个。 前四个命中是在我的直接联系人中(也即是我的朋友或者同事)。 前两位也在 Elastic 工作。 第三个命中有 Philip 作为他的名字的一部分。 只有最后一个命中不是直接联系人 - 但也在我现在的雇主 Elastic 工作。

另一个需要注意的有趣的事情是,这显然是一个前缀(prefix)搜索,因为 Philipp 末尾有两个 p 也是一个有效匹配。

在收集需求之前,让我们尝试第二次搜索。
 
更多阅读 https://elasticstack.blog.csdn ... .5502
继续阅读 »
在大多数社交网络中搜索时,你的直接联系人的排名将高于其他用户。 让我们看一下 Linkedin 的搜索,看看我们是否可以用 Elasticsearch 复制类似的东西。在这里也告诉大家一个小秘密:Linkedin 上面的搜索也是使用 Elasticsearch 完成的哦!

请注意,这篇文章仅在你输入建议时处理自动完成/搜索,并且在发送搜索后不会深入搜索搜索结果,从而产生搜索结果页面。

让我们看看 Linkedin 的搜索界面:
 

linkedin.png

所以让我们看看这个搜索响应。 输入是 Philip。 我们将忽略任何非人的搜索结果或建议 - 前 6 条建议(非人)只是向你展示你可能还在搜索什么。

关注人员结果,列表中的最后五个。 前四个命中是在我的直接联系人中(也即是我的朋友或者同事)。 前两位也在 Elastic 工作。 第三个命中有 Philip 作为他的名字的一部分。 只有最后一个命中不是直接联系人 - 但也在我现在的雇主 Elastic 工作。

另一个需要注意的有趣的事情是,这显然是一个前缀(prefix)搜索,因为 Philipp 末尾有两个 p 也是一个有效匹配。

在收集需求之前,让我们尝试第二次搜索。
 
更多阅读 https://elasticstack.blog.csdn ... .5502 收起阅读 »

社区日报 第1308期 (2021-01-13)

1.运用 Elastic Maps 实时跟踪,可视化资产分布及地理围栏告警
https://elasticstack.blog.csdn ... 95977
2.腾讯看点视频推荐索引构建方案
https://cloud.tencent.com/deve ... 70633
3.使用 Flink CDC 实时构建宽表写入 Elasticsearch
https://ververica.github.io/fl ... earch

编辑:Se7en
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
继续阅读 »
1.运用 Elastic Maps 实时跟踪,可视化资产分布及地理围栏告警
https://elasticstack.blog.csdn ... 95977
2.腾讯看点视频推荐索引构建方案
https://cloud.tencent.com/deve ... 70633
3.使用 Flink CDC 实时构建宽表写入 Elasticsearch
https://ververica.github.io/fl ... earch

编辑:Se7en
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup 收起阅读 »

社区日报 第1307期 (2021-01-12)

1. Elasticsearch:如何将浮点值存储到整型字段中
https://elasticstack.blog.csdn ... 59801
2. Kibana使用:Search Bar
https://cloud.tencent.com/deve ... 77628
3. Logstash:Pipeline-to-Pipeline 通信 - 一个实例处理多种日志
https://blog.csdn.net/UbuntuTo ... 29091

编辑:kin122
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
继续阅读 »
1. Elasticsearch:如何将浮点值存储到整型字段中
https://elasticstack.blog.csdn ... 59801
2. Kibana使用:Search Bar
https://cloud.tencent.com/deve ... 77628
3. Logstash:Pipeline-to-Pipeline 通信 - 一个实例处理多种日志
https://blog.csdn.net/UbuntuTo ... 29091

编辑:kin122
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup 收起阅读 »

社区日报 第1306期 (2022-01-11)


1. 教练,我想用ES 做向量搜索(需要梯子)
https://medium.com/gsi-technol ... 8812e
2. 用ES做可扩展的语义向量搜索(需要梯子)
https://medium.com/gsi-technol ... 5ba8e
3. Trendyol 的搜索升级之路(需要梯子)
https://medium.com/trendyol-te ... e06cb
编辑:斯蒂文
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
 
继续阅读 »

1. 教练,我想用ES 做向量搜索(需要梯子)
https://medium.com/gsi-technol ... 8812e
2. 用ES做可扩展的语义向量搜索(需要梯子)
https://medium.com/gsi-technol ... 5ba8e
3. Trendyol 的搜索升级之路(需要梯子)
https://medium.com/trendyol-te ... e06cb
编辑:斯蒂文
归档:https://ela.st/cn-daily-all
订阅:https://ela.st/cn-daily-sub
沙龙:https://ela.st/cn-meetup
  收起阅读 »