华为荣耀30青春版多少钱7双11那天多少钱

Elasticsearch前沿:ES 5.x改进详解与ES6展望
导读:本文介绍 Elasticsearch 最新的动态,包括 ES 5.x 改进详解与 ES6 展望,由曾勇在高可用架构群分享,转载请注明来自高可用架构公众号。
曾勇(Medcl),Elastic 工程师与布道师,2015 年加入 Elastic 公司。加入 Elastic 之前,在搜索和运维等方面积累了超过七年的经验。Elasticsearch 国内首批用户,自 2010 年起就开始接触 Elasticsearch,是 ES 中文社区发起人,也是 Elastic 在中国的首位员工。
我最早是从 2010 年 3 月开始接触 Elasticsearch ,后面在 2015 年 9 月加入了 Elastic ,即 Elasticsearch 这款开源软件背后的公司,一直围绕在 ES 打转,也算是 ES 半个老司机了。
自去年 10 月正式发布 5.0 以来, Elasticsearch 又新增了不少东西,让我们一起来看一下都有哪些值得关注的特性和改进吧。
数据结构方面
首先是索引这块的改进,大家知道 ES 的数据支持增删改查,比如修改文档的时候其实是需要通过 ID 找到 Lucene 文件里对应的文档先删除然后再插入一个新的,所有写操作需要进行相应的版本检查来确保没有冲突。
如果你的场景是日志,那么基本上数据进去之后是不需要进行修改的,所以现在 ES 新增了一个 append-only 的索引模式,也就是当 ES 是自动生成 ID 的时候, ES 可以跳过不必要的版本检测,大概可以提升 20% 左右的索引性能。
我们来看一组前后对比图吧,单这一块的提升还是可圈可点的。
在数据结构方面,新增了多个 range 字段类型,有什么用呢,现在你可以计算连续数据的交并集,可以是时间范围,也可以是数值范围。
比如数据存放的是会议信息,航班有一个 range 字段,里面存的是会议的开始和结束时间,你通过对应的 range 查询可以很方便的查询,得到某个时间点哪些会议同时正在进行,那段时间会议室有空闲,可以预订等等。
常见的场景,比如日历,电视节目单。
怎么使用呢?看例子会比较清晰一点。
首先看看怎么定义吧,下面的这个例子, mapping 里面设置字段的 type 为 date_range 即表示一个时间的范围字段:
然后我们插入一些数据,可以看到指定的是一个范围,有起始值。
大概就是这么简单。
下一个特性值得介绍的就是 _all 字段的移除
关于 _all 这个字段,场景其实就是为了满足快速检索的需求,当你不知道 mapping 里面有什么字段的情况下,你也能够自由的进行搜索, 所以为了实现这个需求,就有一个 _all 字段,它会把其他字段的内容都拷贝到这个字段里面,然后都当成 string 类型来处理,所以就存在了数据的冗余了,另外数字当成 string 也不能很好的压缩,并且都在 _all 一个字段,所以只能用一种分析器,在高亮的时候也是对这个 _all 字段进行的高亮,而不是真实的字段值,显示起来效果也不好。
现在 query_string 和 simple_query_string 查询引入了一个 all_fields 模式,在没有指定字段的情况下,默认可以自动选择相关类型的字段分别执行查询,自动帮你展开,使用起来更加简单,另外, _all 字段将在 6.0 默认禁用且不可配置。
这里有一个去掉 _all 字段的前后对比,可以看到磁盘占用少了不少,索引性能也有一些提升。
索引性能的提升,图上转折点就是。下面是对应的磁盘空间的下降。
接下来,我们看看搜索的高亮,我们知道文本高亮是搜索体验的重要的一环,通过显示匹配结果的文本块并对关键字进行高亮能够让我们对搜索结果有一个直观的认识。
现在有一个新的高亮器: Unified Highlighter,大家可能会问,目前 ES 默认已经提供了 3 种不同的高亮器,为什么还会有一个新的轮子呢,因为之前的用法有点复杂 , 用户选择起来比较困难,新的 unified highlighter 目的就是简化高亮的使用,可以支持前面 3 种高亮类型的自动选择。
还有一个是 keyword 类型可以通过 normalizer 来进行标准化了, keyword 类型相比 text 类型就是不能分词,但是可能同样需要进行相应的标准化处理,比如统一转成小写,移除标点符号等等,使用方式和 analyzer 一样,比如下面的需求:
尽管设置了 keyword 类型,但是我同样是需要对文本进行处理的啊,用户不可能输入的完全都是一样,错一个大小写,可能就查不出来了。
新的 normalizer 使用起来 很简单,和 analyzer 基本一样,专门用于 keyword 类型,如下:
另一个就是 Multi-Word Synonyms,之前是不支持同义词中间有空格分割的,分词的时候会帮你切分开,搜索的时候不能正确处理词组这种同义词,如下面的场景。
这里有一组同义词,看起来没毛病。
有一个 phrase 查询,看起来也没毛病。
我的同义词过滤器就不对了,如下:
new is old ?这是什么情况?
因为分词的时候,把他们单个字拆开进行的同义处理。新的多词同义词采用 graph 方式处理,很好的解决了上面的问题。
同义词现在可以支持词组了,也就是说同义词如果是由多个词组成的,不会在分词的时候被傻傻的拆开,而是正确的处理。
还一个就是字段折叠( Field collapsing),这个特性比较有意思,你可以在搜索的时候,按某个字段作为维度进行去重,我这里写过一篇详细的博客,有兴趣的可以去看看:
/article/132
Cancellable searches
ES 的搜索,对于一些耗时较长的查询,以前是没有办法取消的,除了干掉节点重来或者等待结束,没有办法,现在可以通过 ES 的任务管理机制来进行取消了, 5.3 已经提供。感兴趣的可以查看文档:
https://www.elastic.co/guide/en/Elasticsearch/reference/5.3/search.html#global-search-cancellation
Partitioned term aggs
ES 的聚合功能很强大吧, term aggs 相信也是大家常用的一种,如果遇到字段里面唯一 term 很多的场景,聚合起来不只是慢,可能还没法正常运行。
现在 term aggs 提供了一种分区的概念,你可以对一个字段,分 n 次进行聚合,分而治之,有兴趣的可以看看文档:
https://www.elastic.co/guide/en/Elasticsearch/reference/5.3/search-aggregations-bucket-terms-aggregation.html#_filtering_values_with_partitions
另外,当你的集群变红的时候,你是不是手忙脚乱过,检查一大堆配置,访问一大堆接口来查看到底是哪里出了问题。
现在方便了,新增的 /_cluster/allocation/explain 接口能够直接告诉你哪里出了问题:
Java REST Client 也有了更新, ES 之前提供了一个偏底层的 Java HTTP REST client,但是用起来太费劲,需要手动拼 JSON,现在, Java REST Client 分成了 Java High Level REST Client 和 Java Low Level REST Client, High Level 基于 Low Level 来实现,顾名思义,提供更多用户方便的接口调用, High Level REST Client 将提供和 Transport Client 类似的接口,不用手动去拼接 QueryDSL 的 JSON 了,目测在 5.5 版本提供。
听说你们有很多集群在跑?那你有没有用过 tribe node 来访问多个集群呢?, tribe-node 的工作方式是合并多个集群的元数据到一起,负责请求的转发。
大概就是这个图。
不过 tribe-node 有几个问题,首先,他需要和各个集群的每个节点建立连接,另外 tribe-node 的 配置的静态的,修改之后需要重启 tribe-node,每个集群的元数据变化之后都需要进行合并,频繁的操作十分影响性能,并且集群的索引名称必须保证不能相同,同时,通过 tribe-node 只能只读,无法创建索引,再者,跨集群查询,会将所有的分片的数据都放到 tribe-node 上进行 reduce,如果分片很多,可能出现 OOM 等问题。
新引入的 cross-cluster 跨集群功能就是为了方便以一种更优雅的方式来替换掉 tribe-node。
先来上一张图,里面可以看到如何创建一个 cross-cluster。
可以看到,集群的任何节点都能执行跨集群操作,节点的元数据不需要频繁更新,集群间索引基于命名空间进行了隔离。
什么是命名空间?
GET sales:*,r_and_d:logs*/_search
"query": { … }
可以看到上面的 QueryDSL,正常的索引前面有 namespace:这样的前缀,这就是命名空间,也就是选择不同的集群。
不仅可以动态设置多个集群的访问,也不需要重启节点。集群间互相不受影响,更没有频繁的元数据的同步。
Kibana 能够完全访问多个集群,且能创建索引和进行修改,具备完整访问权限。
跨集群访问只需要很轻量级的几个连接,不需要和每个节点都建立连接,这个功能在 5.3 已经支持。
Batched Search Reduce Phases
另外,以前的搜索的 reduce 操作都是要等到把每个分片的结果都拿到本地之后再做合并,所以为了避免海量分片造成的资源大量占用的问题,之前是有一个最多 1000 个分片的软限制,也就是一个搜索最多只能检索 1000 个分片,现在新增的 batched search reduce phases 提供了分批进行 reduce 的行为,也就是不用全部拿到之后再做 reduce,而是拿到足够的分片(默认 512)之后就开始 做 reduce,然后拿到合并结果,释放相关的资源,继续获取其他的分片数据继续进行 reduce,这样就能处理海量的数据了,这个功能在 5.4 发布。
ES 6.0 展望
上面的这些功能基本会在 5.x 提供,而 es6.0 早已在路上了,有很多特性值得期待:
稀疏性 Doc Values 的支持,大家知道 es 的 doc values 是列式存储,文档的原始值都是存放在 doc values 里面的,而稀疏性是指,一个索引里面,文档的结构其实是多样性的,但是郁闷的是只要一个文档有这个字段,其他所有的文档尽管没有这个字段,可也都要承担这个字段的开销,所以会存在磁盘空间的浪费,而这块的改进就是这个问题。
Index sorting,即在索引阶段的排序,即我们查询的时候有时候会根据某个字段的值进行排序,比如时间、编号等等,如果在索引的时候提取排好序,那么搜索或聚合的时候就会非常快,相应的直接走预先排序好的索引就行了。当然索引的时候会要增加额外开销,适合不怎么变化的索引的场景。
顺序号的支持,每个 es 的操作都有一个顺序编号,这个属于 es 内部的一个功能,可以提供:快速的分片副本恢复或同步;跨数据中心的节点恢复;甚至提供一个 Changes API 等等;
无缝滚动升级,使之能够从 5 的最后一个版本滚动升级到 6 的最后一个版本,不需要集群的完整重启。无缝滚动升级,也就是不用停服务,在线升级,补充一下。
什么是最后一个版本?
也就是 6 发布第一个版本,比如 6.0 的时候, 5 的对应的那个最后的发布的版本,比如 5.5,那么 5.5 可以直接滚动升级到 6.0。并且这两个版本我们称为主要版本,他们还支持跨大版本的搜索。就是前面提到的 cross-cluster 特性,不同的版本也能支持跨集群访问,如下:
下面还有一些:
Removal of types,在 6.0 里面,开始不支持一个 index 里面存在多个 type 了,所有的新的 index 都将只有一个虚拟的固定的 type: doc 来代替,基于 type 的 parent-child 关系将通过单独的 join 字段来实现, type 会在 7.0 彻底移除。
Index-template inheritance,索引版本的继承,目前索引模板是所有匹配的都会合并,这样会造成索引模板有一些冲突问题, 6.0 将会只匹配一个,索引创建时也会进行验证。
Load aware shard routing, 基于负载的请求路由,目前的搜索请求是全节点轮询,那么性能最慢的节点往往会造成整体的延迟增加,新的实现方式将基于队列的耗费时间自动调节队列长度,负载高的节点的队列长度将减少,让其他节点分摊更多的压力,搜索和索引都将基于这种机制。
已经关闭的索引将也支持 replica 的自动处理,确保数据可靠。
X-Pack 的部分特性:
6.0 的部分特性预告就上面这些,我猜下面的特性你也同样感兴趣:
Elasticsearch-SQL
Elasticsearch 官方也要支持的 SQL 特性了。
默认提供了一个 CLI 工具,可以很方便的执行 SQL 查询,主要面向管理人员,提高常见操作的使用效率。
Kibana 里面也可以直接执行。
另外也兼容 JDBC 协议,现存的很多基于 JDBC 协议的各种 SQL 工具及 BI 工具都能直接把 es 当数据库来连接和进行数据分析。
支持在 Java 里面通过 Java.sql 和 javax.sql API 接口访问 ES 数据。
使用 ES 变得更加轻量级,使用起来无依赖。
去年 Elastic 收购了业界领先的行为数据分析厂商 Prelert,现在相关产品已经集成进入了 X-Pack 的机器学习模块,可以快速的实现基于 ES 数据的行为分析,借助 ES 的海量实时处理能力,采用非监督机器学习来识别异常行为。
上图是机器学习自动识别出来的异常数据点。
本文只是 ES 最近的众多改进的一部分,有关更详细的更新内容还以具体的版本发布记录为准。
ElasticStack 的其他开源项目也有很多有意思的改进和 feature,愿意了解更多的,可以关注我们官方及社区的活动:
/article/141
提问:能否说说 ES 是如何在 lucene 上实现分布式的?
这个不是一句话能够说清楚点,可以参考我们的权威指南:
/book/elasticsearch_definitive_guide_2.x/distributed-docs.html
提问:可否组织一些 ES 常见的复杂模型构建思路探讨这样的论题。主要是探讨如何实现与优化。我想这是在座的同学都会有遇到的问题。
曾勇:复杂模型需要具体分析,可以参看我们的权威指南:
/book/elasticsearch_definitive_guide_2.x/modeling-your-data.html
提问:ES 与 solr 对比有什么优势?技术选型时如何考虑?
曾勇:网上的对比有很多,我就不一一赘述了,如果没有用过 solr,那建议直接使用 ES 吧,上手更快更简单。另外网上的优劣比较其实也要结合自己的实际场景,实践出真知。
问:请问下,如果我有 9G 的数据导入,如何导最快?之前 curl @xxx.txt 方式,但是数据文件一大 curl 标准格式导入就不行了。
曾勇:走 bulk 方式肯定是最快的,txt 内容是什么格式呢,利用一些现存的工具,可以试试,比如 logstash,记得选择 bulk 模式。导入的时候,有很多参数也对速度有帮助,这个就要去看看索引的优化这块的内容了。
百姓网 Elasticsearch 2.x 升级之路
亿级规模的Elasticsearch优化实战
本文由微博崔建兴供稿,转载请注明出处,技术原创及架构实践文章,欢迎通过公众号菜单「联系我们」进行投稿。
高可用架构
改变互联网的构建方式
责任编辑:
声明:本文由入驻搜狐号的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。2312人阅读
elasticsearch(19)
#head监控安装,推荐
bin/plugin -install mobz/elasticsearch-head
#bigdesk集群状态,推荐
bin/plugin -install lukas-vlcek/bigdesk
#marvel监控安装
bin/plugin -i elasticsearch/marvel/latest
#es-sql安装,网页内有详细说明
/NLPchina/elasticsearch-sql
#jdbc-river安装(river只使用es1.X版本)
bin/plugin --install river-jdbc --url http://xbib.org/repository/org/xbib/elasticsearch/importer/elasticsearch-jdbc/1.x.x.x/elasticsearch-jdbc-1.x.x.x-dist.zip
bin/plugin -install lmenezes/elasticsearch-kopf
本文出处:
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:50482次
排名:千里之外
原创:17篇
译文:12篇中国领先的IT技术网站
51CTO旗下网站
五类Elasticsearch扩展性插件推荐
Elasticsearch扩展性非常好,有很多官方和第三方开发的插件,下面以分词、同步、数据传输、脚本支持、站点、其它这几个类别进行划分。
作者:来源:素文宅| 17:15
Elasticsearch扩展性非常好,有很多官方和第三方开发的插件,下面以分词、同步、数据传输、脚本支持、站点、其它这几个类别进行划分。
一、分词插件
&(作者&Olivier Favre, Yakaz)
简介:组合分词器,可以把多个分词器的结果组合在一起。
&(作者&elasticsearch&团队)
简介:lucene默认的中文分词器
&(作者&elasticsearch&团队)
简介:lucene自带的ICU分词,ICU是一套稳定、成熟、功能强大、轻便易用和跨平台支持Unicode 的开发包。
&(作者&elasticsearch&团队)
简介:法文分词器
&(作者&Medcl)
简介:大名鼎鼎的ik分词,都懂的!
&(作者&Medcl)
简介:mmseg中文分词
&(作者&J&rg Prante)
简介:lucene自带的Hunspell模块
&(作者&elasticsearch&团队).
简介:日文分词器
&(作者&suguru).
简介:日文分词器
&(作者&Igor Motov)
简介:俄文英文分词器
&(作者&Medcl)
简介:拼音分词器
&(作者&Medcl)
简介:字符串转整型工具。主要用在facet这个功能上,如果facet的field的值是字符串的话,计算起来比较耗资源。可以把字符串映射成整型,对整型进行facet操作要比对字符串的快很多。
二、同步插件
&(作者&elasticsearch&团队)
简介:CouchDB和elasticsearch的同步插件
&(作者&elasticsearch&团队)
简介:wikipedia文件读取插件。wikipedia是维基百科的一个离线库,不定期发布最新数据,是以xml形式发布的。这个river读取这个文件来建索引。
&(作者&elasticsearch&团队)
简介:twitter的同步插件,可以同步你twitter上的微博。
&(作者&elasticsearch&团队)
简介:rabbitmq同步插件,读取rabbitmq上的队列信息并索引。
&(作者&David Pilato)
简介:定期索引指定一个或多个RSS源的数据。
&(作者&Richard Louapre)
简介:mongodb同步插件,mongodb必须搭成副本集的模式,因为这个插件的原理是通过定期读取mongodb中的oplog来同步数据。
&(作者&J&rg Prante)
简介:可以索引oai数据提供者提供的数据。
&(作者&Sunny Gleason)
简介:可以索引索引st9数据(st9是神马?澹。。。
&(作者&adamlofts)
简介:这个插件可以把多个CouchDB的数据库同步到同一个es索引中。
&(作者&J&rg Prante)
简介:关系型数据库的同步插件
&(作者&David Pilato)
简介:本地文件系统文件同步插件,使用方法是指定一个本地目录路径,es会定期扫描索引该目录下的文件。
&(作者&Tanguy Leroux)
简介:索引LDAP目录下的文件数据。
&(作者&David Pilato)
简介:索引dropbox网盘上的文件。通过oauth协议来调用dropbox上的api建索引。
&(作者&Dominik Dorn)
简介:activemq队列的同步插件,和之前rabbitmq的类似
&(作者&Luca Cavanna)
简介:solr同步插件,可以把solr里面的索引同步到es
&(作者&Martin Bednar)
简介:通过指定目录地址来索引csv文件。
三、数据传输插件
&(作者&elasticsearch&团队)
简介:Servlet rest插件,通过servlet来封装rest接口。
&(作者&elasticsearch&团队)
简介:本插件可以通过memcached协议进行rest接口的调用。注意:这里不是使用memcache作为es的缓存。
&(作者&elasticsearch&团队)
简介:使用thrift进行数据传输。
&(作者&Tanguy Leroux)
简介:使用zeromq进rest接口的调用。
&(作者&Sonian Inc.)
简介:使用jetty来提供http rest接口。默认是使用netty。这个插件的好处是可以对http接口进行一些权限的设置。
四、脚本插件
&(作者&elasticsearch&团队)
简介:python脚本支持
&(作者&elasticsearch&团队)
简介:javascript脚本支持
&(作者&elasticsearch&团队)
简介:groovy脚本支持
&(作者&Kevin Downey)
简介:clojure脚本支持
站点插件(以网页形式展现)
&(作者&Luk&& Vlček)
简介:监控es状态的插件,推荐!
&(作者&Ben Birch)
简介:很方便对es进行各种操作的客户端。
&(作者&Karel Minař&k)
简介:es监控插件
&(作者&Zachary Tong)
简介:查看es索引segment状态的插件
&(作者&Zachary Tong)
简介:这个插件主要用来调试你的查询。
五、其它插件
&(作者&elasticsearch&团队)
简介:附件类型插件,通过tika库把各种类型的文件格式解析成字符串。
&(作者&elasticsearch team)
简介:hadoop和elasticsearch的集成插件,可以通过hadoop的mapreduce算法来并行建立索引,同时支持cascading,hive和pig等框架。
&(作者&elasticsearch&团队)
简介:elasticsearch与amazon web services的集成。
&(作者&Matt Weber)
简介:elasticsearch的solr api接口。用了这个插件可以使用solr的api来调用es,直接用solrj就可以调用es。比较适用于从solr转es时暂时过度。
&(作者&Alexander Reelsen)
简介:es 搜索提示功能插件,不过es0.9版本后自带了这个功能,
&(作者&Medcl)
简介:elasticsearch的部分更新插件。
&(作者&Sonian Inc.)
简介:通过zookeeper管理集群的插件。通过这个插件,es的分布式架构和solrcloud相似。
&(作者&Thomas Peuss)
简介:elasticsearch索引操作记录插件。通过这个插件可以查看用户对索引的增删改操作。
&(作者&Tanguy Leroux)
简介:这个插件可以把es的文档以html,xml或text的方式显示出来,它也可以通过查询生成web页面。
&(作者 Vinicius Carvalho)
简介:elasticsearch和newrelic的集成插件。newrelica是一个性能监控工具。这个插件会把节点的状态数据传到newrelic的账号上。
原文链接:
【编辑推荐】
【责任编辑: TEL:(010)】
大家都在看猜你喜欢
聚焦热点访谈原创原创
24H热文一周话题本月最赞
讲师:275人学习过
讲师:1542人学习过
讲师:1505人学习过
精选博文论坛热帖下载排行
本书是按照全国计算机技术与软件专业技术资格(水平)考试《网络管理员考试大纲》的要求,参照《网络管理员教程》及近年来考试试题编写的。...
订阅51CTO邮刊1828人阅读
ElasticSearch(2)
elasticsearch版本为2.2.0
源码地址:/NLPchina/elasticsearch-sql/tree/elastic2.2.0
安装方式有以下三种:
1、按照以上链接说明的方式进行安装
./bin/plugin install /NLPchina/elasticsearch-sql/releases/download/2.2.0/elasticsearch-sql-2.2.0.zip&
2、下载es-sql插件包,/NLPchina/elasticsearch-sql/releases/download/2.2.0/elasticsearch-sql-2.2.0.zip&
解压要$ES_HOME/plugins目录下,重命名 mv&elasticsearch-sql-2.2.0&sql
重启es集群
3、下载源码,进行打包编译,mvn assembly:assembly -Dmaven.test.skip=true,target目录下生成压缩包elasticsearch-sql-2.2.0.1.zip,
(本人已编译完成,可以直接下载http://download.csdn.net/detail/l46818)
解压要$ES_HOME/plugins目录下,重命名 mv&elasticsearch-sql-2.2.0&sql
重启es集群即可。
elasticsearch-sql使用说明:
1、web页面地址,http://localhost:9200/_plugin/sql/
2、简单的sql示例
http://localhost:9200/_sql?sql=select * from indexName limit 10
3、将sql翻译为elasticsearch查询语句
http://localhost:9200/_sql/_explain?sql=select * from indexName limit 10
Basic Usage
Visit The elasticsearch-sql web front end:
http://localhost:9200/_plugin/sql/
Simple query
http://localhost:9200/_sql?sql=select * from indexName limit 10
Explain SQL to elasticsearch query DSL
http://localhost:9200/_sql/_explain?sql=select * from indexName limit 10
SELECT * FROM bank WHERE age &30 AND gender = 'm'
Aggregation
select COUNT(*),SUM(age),MIN(age) as m, MAX(age),AVG(age)
FROM bank GROUP BY gender ORDER BY SUM(age), m DESC
DELETE FROM bank WHERE age &30 AND gender = 'm'
SELECT address FROM bank WHERE address = matchQuery('880 Holmes Lane') ORDER BY _score DESC LIMIT 3
Aggregations
range age group 20-25,25-30,30-35,35-40
SELECT COUNT(age) FROM bank GROUP BY range(age, 20,25,30,35,40)
range date group by day
SELECT online FROM online GROUP BY date_histogram(field='insert_time','interval'='1d')
range date group by your config
SELECT online FROM online GROUP BY date_range(field='insert_time','format'='yyyy-MM-dd' ,'','','now-8d','now-7d','now-6d','now')
ES Geographic
SELECT * FROM locations WHERE GEO_BOUNDING_BOX(fieldname,100.0,1.0,101,0.0)
Select type
SELECT * FROM indexName/type
SQL SelectSQL DeleteSQL WhereSQL Order BySQL Group BySQL AND & ORSQL LikeSQL COUNT distinctSQL InSQL BetweenSQL AliasesSQL Not NullSQL(ES) DateSQL avg()SQL count()SQL last()SQL max()SQL min()SQL sum()SQL NullsSQL isnull()SQL now()
sql features
ES TopHitsES MISSINGES STATSES GEO_INTERSECTSES GEO_BOUNDING_BOXES GEO_DISTANCEES GEOHASH_GRID aggregation
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:8745次
排名:千里之外

我要回帖

更多关于 华为荣耀30青春版多少钱 的文章

 

随机推荐