Nodejs中@elasticelasticsearch的使用

Nodejs中@elasticelasticsearch的使用,第1张

我们项目用到了一个当当的elastic-job分布式任务调度统计。有一条语句一直报慢SQL,慢SQL设置为超过1秒,SQL语句如下:

SELECT

original_task_id 

FROM

JOB_STATUS_TRACE_LOG 

WHERE

task_id = 'comjzysupjobserverjobCallBackBatchSimpleJob@-@0@-@READY@-@17222217@-@1' 

AND state = 'TASK_STAGING'

数据量:

首先查看where 条件已有索引

,所以查询是用到了索引。

但是为啥还会慢呢,结合《高性能MySql》书中介绍的InnoDB的索引原理,分析到,及时用到索引,但二级索引保存的是聚簇索引的主键值,所以查询original_task_id的时候还是需要通过主键再获取需要的结果。相关的值非常大,所以花费大量的时间。同时书中也给出覆盖索引的概念,参考如下照片。

分析得出将original_task_id也加入索引应该就能达到覆盖索引所描述情况。如下图增加索引:

对比增加索引前后的explain,发下增加后Extra多了UsingIndex描述,证明覆盖索引生效。

增加索引之前

增加索引之后

观察阿里云后台监控数据,发现缓存池页扫描直线下降,同时CPU消耗页下降60%。查询速度得到提升,再没有报相关的慢SQL。

聚合提供了从数据中 分组和提取数据 的能力。

最简单的聚合方法大致等于 SQL GROUP BY 和 SQL 聚合函数 。

在 Elasticsearch 中,您有执行搜索返回 hits (命中结果),并且同时返回聚合结果,

把一个响应中的所有hits(命中结果)分隔开的能力。这是非常强大且有效的,您可以执行查询和多个聚合,

并且在一次使用中得到各自的(任何一个的)返回结果,使用一次简洁和简化的 API 来避免网络往返。

aggregations 查询语法:

举个栗子:

更多聚合查询 *** 作,请参考 ES 官方文档: 参考文档-search-aggregations

参考:

Elasticsearch Reference

elastic

全文搜索引擎 Elasticsearch 入门教程

  我们之前介绍过结构化搜索的简单使用,接下来,我们来看怎样在全文字段中搜索最相关的文档。

  全文搜索包括两个最重要的方面:

  1 查询与结果的相关性,并根据相关性对结果进行排名。

  2 分析,将数据转化为有区别的、规范化的的过程。

  所有的查询都或多或少的会进行相关度计算,但不是所有的查询都会有分析阶段,文本查询可以分为两个部分:

  1 基于词项的查询,如 term 或 fuzzy 这样的查询是没有分析阶段的。他们对单个词项进行 *** 作。

  2 基于全文的查询,比如match, 它们会先了解字段映射的信息,判断字段是否被分词,是否是日期还是数字等, 再根据映射信息,构建要查询的词项列表,根据列表进行查询。

  匹配查询 match 是个核心查询。无论需要查询什么字段, match 查询都应该会是首选的查询方式。使用方式如下:

es执行上列步骤的过程如下:

  如果一次只能搜索一个词语,那么全文搜索会不太灵活,幸运的是 match 也支持多词查询 。

以上查询其实先后执行了两次 term 查询,使用 bool 进行包含,然后将结果进行合并返回。

  以上查询其实会导致出现不相关的结果,我们只想搜索包含words1 和 words2 的文档,而不是 or 的结果。match 查询还可以接受 operator *** 作符作为输入参数,默认情况下该 *** 作符是 or 。

这种 *** 作还是有些不妥,在 and 和 or 中间选择太过绝对,如果用户给出了5个词项,我们想只要满足其中4 个 就表示匹配,match 也提供了 minimum_should_match 参数,他是一个最小匹配参数,我们可以控制满足的词项超过改值则表示匹配,最好是使用百分比,因为你也不知道用户提供了多少个词项。该参数的设置非常灵活,完整的信息参考文档,请看 >

以上就是关于Nodejs中@elastic/elasticsearch的使用全部的内容,包括:Nodejs中@elastic/elasticsearch的使用、Elastic Search优化、elastic search中如何查询id中含有某个字符的数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10149203.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存