首页 文章 精选 留言 我的

精选列表

搜索[Elasticsearch],共4100篇文章
优秀的个人博客,低调大师

OpenSearch 2.7.0 发布,ElasticSearch 的替代品

OpenSearch 2.7.0 已准备好下载!最新版本的 OpenSearch 为搜索、分析、可观测性和安全性应用程序提供了一系列新功能,并对管理和可用性进行了重大增强。此版本还标志着之前作为实验性发布的几个主要功能的正式发布 — 我们希望您和我们一样渴望将段复制、可搜索快照等功能投入生产!完整的改进记录请看发行说明,您可以在Playground上探索 OpenSearch 的可视化工具。 通过可搜索快照大规模提高效率 可搜索快照在 OpenSearch 2.4.0 中作为实验性引入,允许您实时搜索作为快照存储在远程存储库中的索引,而无需提前将整组索引数据下载到群集存储。现在,可搜索快照已做好生产准备,在性能、稳定性和管理方面具有许多增强功能(如此处所示),可帮助您利用远程存储选项,同时节省时间并节省存储容量。在此版本中,项目存储路线图的第二阶段现已正式发布。 通过分段复制增强性能 随着分段复制的正式发布,用户可以选择另一种策略来复制其数据,从而有可能提高高引入工作负载的性能。段复制将 Lucene 段文件从主分片复制到其副本。Lucene 的一次性写入分段架构意味着只需要复制新的分段文件,从而以增加网络利用率和刷新时间为代价,提供更高的索引吞吐量和更低的资源利用率。您现在可以在段复制和文档复制之间进行选择;每当在索引中添加、删除或更新文档时,文档复制都会对主分片和每个副本并行执行相同的索引操作。段复制在 OpenSearch 2.3.0 中作为实验性发布,在接近正式发布时收到了许多贡献,如此处的项目所示。 可视化和探索来自多个来源的数据 同样准备投入生产的还有对 OpenSearch 仪表板中多个数据源的支持。现在,您可以跨多个 OpenSearch 集群动态管理数据源,基于这些源创建索引模式,针对特定数据源运行查询,并将可视化合并到单个仪表板中。此功能在 OpenSearch 2.4.0 中作为实验性功能推出,在准备版本 2.7.0 时获得了功能,如本期所述,包括与开发工具控制台的集成和多项可用性增强功能。 减少大量字段的扁平对象的开销 复杂的 JSON 对象通常包含大量子字段。随着索引的增长,映射每个字段所需的开销可能会消耗过多的存储和内存,这可能会导致“映射爆炸”,从而影响集群的性能和弹性。使用新的平面对象字段类型,您可以选择将复杂的 JSON 对象存储在索引中,而无需单独为所有字段编制索引。通过定义平面对象,您可以选择存储对象及其中的所有对象,从而避免需要单独索引子字段,同时使用DSL和SQL中的点表示法使这些子字段可作为关键字访问。这意味着您可以调整索引映射到数据,并更好地管理和利用资源。 在 OpenSearch 仪表板中使用可观测性功能 在 2.7.0 中,OpenSearch 延续了将可观测性功能作为 OpenSearch 仪表板中的核心功能集成的趋势。现在,您可以从主菜单轻松访问可观测性功能,从仪表板中创建和选择可观测性仪表板,并将事件分析可视化 (PPL) 添加到 OpenSearch 仪表板中的新仪表板或现有仪表板。只需从 OpenSearch 仪表板中创建一个新仪表板,即可查看可观测性仪表板作为选项,或将您喜欢的事件分析 PPL 可视化添加到现有仪表板中。有关此功能的详细信息,请参阅文档。 使用基于形状的筛选器查询地理空间数据 此版本为 OpenSearch 仪表板中的地理空间工具带来了另一轮增强功能,能够根据地理空间字段类型过滤地理空间数据。在早期版本中,用户可以按文档图层中的非地理空间字段类型过滤文档。现在,您可以通过在地图上的选定区域上绘制矩形或面来过滤数据。这会将过滤器应用于地理空间数据以识别空间关系;您可以使用此功能返回其地理坐标 (geo_point) 或地理形状 (geo_shape) 与查询几何图形相交、包含、位于查询几何图形内或未在查询几何中找到的文档。 查看以当地语言显示的 OpenSearch 地图 在 2.7.0 中,OpenSearch 现在将自动渲染地图,其标签和内容以配置 OpenSearch 实例的语言显示。在早期版本中,地图使用源库提供的语言进行渲染。现在,您可以选择以所选的受支持语言显示地图。在启动时,所选语言将由 OpenSearch 仪表板 YAML 配置文件定义;请留意未来版本中的可选下拉菜单。 使用组件模板简化管理 OpenSearch 2.7.0 通过将组件模板直接添加到 OpenSearch 仪表板的索引管理 UI 中,简化了多个索引模板的管理。过去,由于重复,用户在管理多个索引模板时遇到困难,从而导致集群状态更大。此外,对多个模板进行更改需要对每个模板进行手动更新。组件模板进一步增强了 2.5.0 中引入的索引管理 UI,允许您通过将常用设置、映射和别名抽象到可重用的构建基块中来克服这些挑战。 在 OpenSearch 仪表板中动态配置租赁 OpenSearch 管理员的另一个节省时间的升级是动态租户管理的可用性。OpenSearch 仪表板使用租户作为保存和共享索引模式、可视化效果、仪表板和其他对象的空间,并对用户可以访问租户以及提供的访问级别进行管理控制。在早期版本中,仪表板支持租户创建和映射,而租户配置在 YAML 文件中完成,需要在每个数据节点内进行更改以保持节点之间的一致性,并且需要重新启动仪表板才能生效。在此版本中,管理员可以在仪表板中查看、配置和启用或禁用租户,并实现这些更改,而无需重新启动。 通过热分片识别保持性能 此版本为OpenSearch的性能分析器插件中可用的工具集合带来了热分片识别。热分片比索引中的其他分片消耗更多的计算、内存或网络资源;如果不加以解决,它们可能会导致查询吞吐量降低和索引延迟增加,从而可能影响群集可用性。现在,您可以使用性能分析器的根本原因分析代理来识别集群中的热分片,以便可以缓解它们以提高集群性能。 使用内置关联工具分析安全事件 包含安全事件的日志数据可以跨越多个索引和数据流,可视化连接事件之间的关系可以为安全分析师提供有价值的见解。关联引擎作为实验性功能包含在此版本中,允许您在安全事件数据中定义关联,从而跨不同的日志源(如 DNS、Netflow 和 Active Directory)实现高保真结果,仅举几例。此知识图谱可用于跨多个索引和数据流识别、存储和调用连接的事件数据,以帮助您识别模式并调查受监控基础架构中不同系统之间的关系。与往常一样,建议仅在生产环境之外使用实验性功能。 提高 ML 模型的可用性 实验性机器学习 (ML) 框架在此版本中接收更新,包括用于 ML 模型的新自动重新加载机制。现在,您可以将搜索集群设置为在集群关闭后重新启动或节点重新加入集群时自动重新加载已部署的模型,从而最大限度地减少恢复时间并更快地将 ML 模型恢复到生产中。 探索开放搜索 2.7.0 最新版本的OpenSearch可供下载。您可以在发行说明、文档发行说明和文档中了解有关这些功能的更多信息以及更多内容,OpenSearch Playground是在下载工具之前探索这些工具的好地方。查找即将发布的博客文章,这些文章将更深入地了解 OpenSearch 2.7.0 中包含的新功能。

优秀的个人博客,低调大师

Elasticsearch查询及聚合类DSL语句宝典

作者:京东科技 纪海雨 前言 随着使用es场景的增多,工作当中避免不了去使用es进行数据的存储,在数据存储到es当中以后就需要使用DSL语句进行数据的查询、聚合等操作,DSL对SE的意义就像SQL对MySQL一样,学会如何编写查询语句决定了后期是否能完全驾驭ES,所以至关重要,本专题主要是分享常用的DSL语句,拿来即用。 一、match 如果match 查询数字,日期,布尔值或者not_analyzed 的字符串时,会精确匹配搜索值,不做分词解析;如果match 查询全文本,会对查询词做分词解析,然后搜索。 比如对keyword 类型的tag 查询,"京东总部"不会分词,必须完全相等的词才会被搜索出来 {a "query": { "match": { "content" : { "tag" : "京东总部" } } } } 比如"宝马多少马力"会被分词为"宝马 多少 马力", 所有有关"宝马 多少 马力", 那么所有包含这三个词中的一个或多个的文档就会被搜索出来。并且根据lucene的评分机制(TF/IDF)来进行评分 { "query": { "match": { "content" : { "query" : "宝马多少马力" } } } } 二、match_phrase 如果想要精确匹配所有同时包含"宝马 多少 马力"的文档,就要使用 match_phrase 了 { "query": { "match_phrase": { "content" : { "query" : "宝马多少马力" } } } } 三、mult_match 如果我们希望两个字段进行匹配,其中一个字段有这个文档就满足的话,使用multi_match { "query": { "multi_match": { "query" : "我的宝马多少马力", "fields" : ["title", "content"] } } } 四、term 关键字精确匹配,不分词解析。注意 term 包含(contains) 操作,而非 等值(equals)判断。如果文档包含full_text 及其他词,也会命中返回。 使用term要确定的是这个字段是否“被分析”(analyzed),默认的字符串是被分析的。 比如下面的例子,其中的full_text是被分析过的,所以full_text的索引中存的就是[quick, foxes],而extra_value中存的是[Quick Foxes!] PUT my_index { "mappings": { "my_type": { "properties": { "full_text": { "type": "string" }, "exact_value": { "type": "string", "index": "not_analyzed" } } } } } PUT my_index/my_type/1 { "full_text": "Quick Foxes!", "exact_value": "Quick Foxes!" } 请求不出数据的,因为full_text分词后的结果中没有[Quick Foxes!]这个分词 GET my_index/my_type/_search { "query": { "term": { "full_text": "Quick Foxes!" } } } 五、terms 指定多值精确匹配,如果字段包含了指定值中的任何一个值,那么文档满足条件。类似sql中的in { "terms": { "tag": [ "search", "full_text", "nosql" ] } } 六、range 数字/时间的区间查询,操作符: •gt > greater than •gte >= •lt < litter than •lte <= { "query":{ "range": { "age": { "gte": 20, "lt": 30 } } } } 七、wildcard 通配符索引。* 表示全匹配,? 表示单一匹配。扫描所有倒排索引,性能较差 { "query": { "wildcard": { "companyName": "*京东*" } } } 八、regexp 正则索引。扫描所有倒排索引,性能较差 { "query": { "regexp": { "postcode": "W[0-9].+" } } } 九、组合多查询(bool查询) bool 查询后面可以跟这四种匹配模式 •must 必须匹配 •must_not 必须不匹配 •should 匹配任意,等价or •filter 必须匹配:过滤模式 比如我们想要请求"content 中带宝马,但是tag 中不带宝马"这样类似的需求,就需要用到bool 联合查询。 { "query":{ "bool":{ "must":{ "term":{ "content":"宝马" } }, "must_not":{ "term":{ "tags":"宝马" } } } } } 十、聚合 聚合包含一下两种: 1、 指标聚合(Metric Aggregation):一些数学运算,可以对文档字段进行统计分析 •输出一个值 ▪min ▪max ▪sum ▪avg ▪ value_count 统计某字段有值的文档数 ▪ cardinality 某字段值去重计数 •输出多个值 ▪stats ▪percentiles ▪percentile_ranks 2、桶聚合(Bucket Aggregation) :一些列满足特定条件的文档的集合,相当于sql 的groupby •terms 对某个字段统计每个不同的内容,以及出现文档的个数 •range 某个范围内文档的个数 默认聚合范围是全文,但是如果有query查询,那么聚合的范围就是query查询的结果。 value_count 统计某字段有值的文档数 { "size": 0, "aggs": { "count": { "value_count": { "field": "companyName" } } } } 指定查询语句进行统计 { "query": { "term": { "companyName": "安徽科达智慧能源科技有限公司" } }, "aggs": { "count": { //自定义名称 "terms": { "field": "companyName" } } } }  以上就是本期分享的DSL语句,小伙伴们结合自己的使用查询场景进行操练起来吧。

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册