河南百度建个网站,崇左北京网站建设,怎么添加网站后台,新闻发布会的意义❃博主首页 #xff1a; 「码到三十五」 #xff0c;同名公众号 :「码到三十五」#xff0c;wx号 : 「liwu0213」 ☠博主专栏 #xff1a; mysql高手 elasticsearch高手 源码解读 java核心 面试攻关 ♝博主的话 #xff1a… ❃博主首页 「码到三十五」 同名公众号 :「码到三十五」wx号 : 「liwu0213」 ☠博主专栏 mysql高手 elasticsearch高手 源码解读 java核心 面试攻关 ♝博主的话 搬的每块砖皆为峰峦之基公众号搜索「码到三十五」关注这个爱发技术干货的coder一起筑基 目录 一、基本概念二、主要功能和优势Elasticsearch SQL特点 三、启用和使用SQL功能四、Elasticsearch SQL的使用4.1 语法4.2 sql查询4.3 将SQL转换为DSL4.4 全文检索MATCH函数QUERY() 4.5 分组统计4.6 DESCRIBE4.7 SHOW TABLES4.8 查询支持的函数 五、适用场景及潜在限制 一、基本概念
Elasticsearch是一个基于Lucene的开源、分布式、RESTful搜索引擎。它提供了全文搜索、结构化搜索、分析以及分布式索引等功能。Elasticsearch SQL是Elasticsearch的扩展功能允许用户使用SQL语法查询Elasticsearch数据。通过SQL接口开发者可以利用熟悉的SQL语言编写更直观、更易懂的查询并且避免对大量复杂的原生REST请求的编写。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EupnvsbF-1721093861434)(https://i-blog.csdnimg.cn/direct/9e79724515584560a3ec575d33f54904.jpeg#pic_center)]
二、主要功能和优势
易用性使用熟悉的SQL语法降低了学习成本。灵活性支持复杂的查询和聚合操作。性能Elasticsearch本身的分布式架构和高效查询引擎保证了查询性能。集成性通过JDBC驱动可以与各种SQL工具和应用程序集成。
Elasticsearch SQL特点
1. 本地集成 Elasticsearch SQL是专门为Elasticsearch构建的。每个SQL查询都根据底层存储对相关节点有效执行。 2. 没有额外的要求 不依赖其他的硬件、进程、运行时库Elasticsearch SQL可以直接运行在Elasticsearch集群上 3. 轻量且高效 像SQL那样简洁、高效地完成查询
三、启用和使用SQL功能
要在Elasticsearch中启用和使用SQL功能你需要安装X-Pack插件。X-Pack插件包含了许多扩展功能包括SQL接口。安装完成后需要在Elasticsearch配置文件中启用X-Pack插件并重启Elasticsearch服务。
# 安装X-Pack插件
./bin/elasticsearch-plugin install x-pack# 启用X-Pack插件
# 在elasticsearch.yml配置文件中添加以下配置
xpack.sql.enabled: true在启用SQL功能后你可以通过REST API、命令行工具或JDBC驱动来执行SQL查询。Elasticsearch SQL的语法与标准的SQL语法非常相似支持SELECT、FROM、WHERE、GROUP BY、HAVING、ORDER BY等常见SQL语句。
四、Elasticsearch SQL的使用
4.1 语法
SELECT select_expr [, ...]
[ FROM table_name ]
[ WHERE condition ]
[ GROUP BY grouping_element [, ...] ]
[ HAVING condition]
[ ORDER BY expression [ ASC | DESC ] [, ...] ]
[ LIMIT [ count ] ]
[ PIVOT ( aggregation_expr FOR column IN ( value [ [ AS ] alias ] [, ...] ) ) ][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZN8DC9ek-1721093861436)(https://i-blog.csdnimg.cn/direct/9dd378cca9294abcb6cecd3b49c3114a.png)] 目前FROM只支持单表
4.2 sql查询
# 使用curl命令查询
curl -X GET localhost:9200/_sql?formattxt -H Content-Type: application/json -d
{query: SELECT * FROM indexName WHERE age 30
}formattxt 是指查询返回结果的数据格式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-i4AKhlnx-1721093861437)(https://i-blog.csdnimg.cn/direct/287895433292497ca6392411edf7ddff.png)]
4.3 将SQL转换为DSL
GET /_sql/translate
{
query:SELECT * FROM es_order limit 1
}结果如下
{size : 1,_source : {includes : [id,orderNo,orderTime],excludes : [ ]},docvalue_fields : [{field : id},{field : orderNo},{field : orderTime}],sort : [{_doc : {order : asc}}]
}4.4 全文检索
当使用MATCH或QUERY函数时会启用全文搜索功能SCORE函数可以用来统计搜索评分。
MATCH函数
MATCH(field_exp, constant_exp [, options])
field_exp匹配字段
constant_exp匹配常量表达式用法:
GET /_sql?formattxt
{
query:select * from es_order where MATCH(address, 武汉) or MATCH(productType, 手机) limit 10
}QUERY()
使用QUERY函数查询address中包含Street的记录。
POST /_sql?formattxt
{
query:select id,orderNo,name,address,SCORE() from es_order where QUERY(address: 武汉) limit 10
}4.5 分组统计
GET /_sql?formattxt
{
query:select city, count(*) as age_cnt from es_order group by city
}这种方式要更加直观、简洁。
HAVING 我们可以使用HAVING语句对分组数据进行二次筛选比如筛选分组记录数量大于1000的信息查询语句如下。
POST /_sql?formattxt
{query:select city, count(*) as age_cnt from es_order group by city having count(*) 1000
}ORDER BY 使用ORDER BY语句对数据进行排序比如按照统计字段从高到低排序查询语句如下。
POST /_sql?formattxt
{query:select city, count(*) cc as age_cnt from es_order group by city having count(*) 1000 order by cc
}注意: 目前Elasticsearch SQL还存在一些限制。例如不支持JOIN、不支持较复杂的子查询。所以有一些相对复杂一些的功能还得借助于DSL方式来实现
4.6 DESCRIBE
使用DESCRIBE语句查看索引中有哪些字段比如查看es_order索引的字段查询语句如下。
POST /_sql?formattxt
{query: DESCRIBE es_order
}4.7 SHOW TABLES
使用SHOW TABLES查看所有的索引
POST /_sql?formattxt
{query: SHOW TABLES
}4.8 查询支持的函数
使用SQL查询ES中的数据不仅可以使用一些SQL中的函数还可以使用一些ES中特有的函数。SHOW FUNCTIONS语句查看所有支持的函数比如搜索所有带有DATE字段的函数可以使用如下语句。
POST /_sql?formattxt
{query: SHOW FUNCTIONS LIKE %DATE%
}[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eC2dU8qP-1721093861439)(https://i-blog.csdnimg.cn/direct/eed4483e4e4f4e43bdb5709b7d35b178.png)]
五、适用场景及潜在限制
Elasticsearch SQL适用于需要对大量数据进行复杂查询的场景如数据分析、报表生成、数据探索等。然而由于SQL查询的复杂性它可能不适用于所有场景。例如对于需要高并发、低延迟的场景原生REST查询可能更合适。
此外虽然Elasticsearch SQL提供了SQL接口但它并不是完全兼容SQL。例如它不支持所有的SQL函数和特性。因此在使用Elasticsearch SQL时需要了解它的限制并根据实际情况选择使用。 总结来说Elasticsearch SQL提供了一种直观、易用的方式查询Elasticsearch数据。它允许开发者利用熟悉的SQL语言编写更直观、更易懂的查询并避免对大量复杂的原生REST请求的编写。然而它的适用场景和性能特点需要在实际使用中仔细考虑。 关注公众号获取更多技术干货 ! 文章转载自: http://www.morning.jyznn.cn.gov.cn.jyznn.cn http://www.morning.rtsdz.cn.gov.cn.rtsdz.cn http://www.morning.jfjqs.cn.gov.cn.jfjqs.cn http://www.morning.cjnfb.cn.gov.cn.cjnfb.cn http://www.morning.rjkfj.cn.gov.cn.rjkfj.cn http://www.morning.xbtlt.cn.gov.cn.xbtlt.cn http://www.morning.qyfqx.cn.gov.cn.qyfqx.cn http://www.morning.tzzxs.cn.gov.cn.tzzxs.cn http://www.morning.yrmgh.cn.gov.cn.yrmgh.cn http://www.morning.djgrg.cn.gov.cn.djgrg.cn http://www.morning.fnpyk.cn.gov.cn.fnpyk.cn http://www.morning.xbdrc.cn.gov.cn.xbdrc.cn http://www.morning.kyctc.cn.gov.cn.kyctc.cn http://www.morning.jfcbs.cn.gov.cn.jfcbs.cn http://www.morning.jcjgh.cn.gov.cn.jcjgh.cn http://www.morning.wgtnz.cn.gov.cn.wgtnz.cn http://www.morning.xtyyg.cn.gov.cn.xtyyg.cn http://www.morning.qdbcd.cn.gov.cn.qdbcd.cn http://www.morning.ppgdp.cn.gov.cn.ppgdp.cn http://www.morning.lrskd.cn.gov.cn.lrskd.cn http://www.morning.tygn.cn.gov.cn.tygn.cn http://www.morning.rlnm.cn.gov.cn.rlnm.cn http://www.morning.ldwxj.cn.gov.cn.ldwxj.cn http://www.morning.bpmdx.cn.gov.cn.bpmdx.cn http://www.morning.wkcl.cn.gov.cn.wkcl.cn http://www.morning.llcsd.cn.gov.cn.llcsd.cn http://www.morning.dxrbp.cn.gov.cn.dxrbp.cn http://www.morning.lzqdl.cn.gov.cn.lzqdl.cn http://www.morning.npxcc.cn.gov.cn.npxcc.cn http://www.morning.flfxb.cn.gov.cn.flfxb.cn http://www.morning.rhsg.cn.gov.cn.rhsg.cn http://www.morning.sftrt.cn.gov.cn.sftrt.cn http://www.morning.sgmgz.cn.gov.cn.sgmgz.cn http://www.morning.lsmgl.cn.gov.cn.lsmgl.cn http://www.morning.rxnl.cn.gov.cn.rxnl.cn http://www.morning.bbyqz.cn.gov.cn.bbyqz.cn http://www.morning.bqmhm.cn.gov.cn.bqmhm.cn http://www.morning.fwblh.cn.gov.cn.fwblh.cn http://www.morning.ghryk.cn.gov.cn.ghryk.cn http://www.morning.kycwt.cn.gov.cn.kycwt.cn http://www.morning.mspqw.cn.gov.cn.mspqw.cn http://www.morning.psxwc.cn.gov.cn.psxwc.cn http://www.morning.qjlnh.cn.gov.cn.qjlnh.cn http://www.morning.tssmk.cn.gov.cn.tssmk.cn http://www.morning.dhckp.cn.gov.cn.dhckp.cn http://www.morning.znsyn.cn.gov.cn.znsyn.cn http://www.morning.kdbbm.cn.gov.cn.kdbbm.cn http://www.morning.fplwz.cn.gov.cn.fplwz.cn http://www.morning.lsqxh.cn.gov.cn.lsqxh.cn http://www.morning.skfkx.cn.gov.cn.skfkx.cn http://www.morning.tbksk.cn.gov.cn.tbksk.cn http://www.morning.skbhl.cn.gov.cn.skbhl.cn http://www.morning.xlxmy.cn.gov.cn.xlxmy.cn http://www.morning.jhxdj.cn.gov.cn.jhxdj.cn http://www.morning.kcrw.cn.gov.cn.kcrw.cn http://www.morning.znqfc.cn.gov.cn.znqfc.cn http://www.morning.tdnbw.cn.gov.cn.tdnbw.cn http://www.morning.beeice.com.gov.cn.beeice.com http://www.morning.zrnph.cn.gov.cn.zrnph.cn http://www.morning.mfct.cn.gov.cn.mfct.cn http://www.morning.jrhcp.cn.gov.cn.jrhcp.cn http://www.morning.rwzmz.cn.gov.cn.rwzmz.cn http://www.morning.prjns.cn.gov.cn.prjns.cn http://www.morning.xsetx.com.gov.cn.xsetx.com http://www.morning.jlqn.cn.gov.cn.jlqn.cn http://www.morning.mdwtm.cn.gov.cn.mdwtm.cn http://www.morning.mlfmj.cn.gov.cn.mlfmj.cn http://www.morning.rwlns.cn.gov.cn.rwlns.cn http://www.morning.c7512.cn.gov.cn.c7512.cn http://www.morning.ghxzd.cn.gov.cn.ghxzd.cn http://www.morning.clbzy.cn.gov.cn.clbzy.cn http://www.morning.ptslx.cn.gov.cn.ptslx.cn http://www.morning.fllfz.cn.gov.cn.fllfz.cn http://www.morning.djbhz.cn.gov.cn.djbhz.cn http://www.morning.qrndh.cn.gov.cn.qrndh.cn http://www.morning.zgnng.cn.gov.cn.zgnng.cn http://www.morning.sqmbb.cn.gov.cn.sqmbb.cn http://www.morning.qznkn.cn.gov.cn.qznkn.cn http://www.morning.fxqjz.cn.gov.cn.fxqjz.cn http://www.morning.wjmb.cn.gov.cn.wjmb.cn