当前位置: 首页 > news >正文

新北网站建设手游免费0加盟代理

新北网站建设,手游免费0加盟代理,找别人做的网站怎样修改,163企业邮箱客服电话❃博主首页 &#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转换为DSL
        • 4.4 全文检索
          • MATCH函数
          • QUERY()
        • 4.5 分组统计
        • 4.6 DESCRIBE
        • 4.7 SHOW TABLES
        • 4.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)]

二、主要功能和优势

  1. 易用性:使用熟悉的SQL语法,降低了学习成本。
  2. 灵活性:支持复杂的查询和聚合操作。
  3. 性能:Elasticsearch本身的分布式架构和高效查询引擎保证了查询性能。
  4. 集成性:通过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?format=txt" -H 'Content-Type: application/json' -d'
{"query": "SELECT * FROM indexName WHERE age > 30"
}'

format=txt 是指查询返回结果的数据格式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(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?format=txt
{
"query":"select * from es_order where MATCH(address, '武汉') or MATCH(productType, '手机') limit 10"
}
QUERY()

使用QUERY函数查询address中包含Street的记录。

POST /_sql?format=txt
{
"query":"select id,orderNo,name,address,SCORE()  from es_order where QUERY('address: 武汉') limit 10"
}
4.5 分组统计
GET /_sql?format=txt
{
"query":"select city, count(*) as age_cnt from es_order group by city"
}

这种方式要更加直观、简洁。

HAVING
我们可以使用HAVING语句对分组数据进行二次筛选,比如筛选分组记录数量大于1000的信息,查询语句如下。

POST /_sql?format=txt
{"query":"select city, count(*) as age_cnt from es_order group by city having count(*) > 1000"
}

ORDER BY
使用ORDER BY语句对数据进行排序,比如按照统计字段从高到低排序,查询语句如下。

POST /_sql?format=txt
{"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?format=txt
{"query": "DESCRIBE es_order"
}
4.7 SHOW TABLES

使用SHOW TABLES查看所有的索引

POST /_sql?format=txt
{"query": "SHOW TABLES"
}
4.8 查询支持的函数

使用SQL查询ES中的数据,不仅可以使用一些SQL中的函数,还可以使用一些ES中特有的函数。SHOW FUNCTIONS语句查看所有支持的函数,比如搜索所有带有DATE字段的函数可以使用如下语句。

POST /_sql?format=txt
{"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.ds6.com.cn/news/81717.html

相关文章:

  • 如何做淘宝店网站唯尚广告联盟app下载
  • 网站用户界面ui设计细节厦门seo网站管理
  • 郑州建站网站的公司推广软文代写
  • 政府网站建设与管理站长统计官网
  • 个人网站建设背景和目的职业培训网
  • 兰州网站制作cheng网络推广与优化
  • 办文明网站 做文明网民活动百度关键词搜索次数
  • 7个湖北seo网站推广策略免费网络推广100种方法
  • 搭建网上商城怎样进行seo优化
  • 深圳培训手机网站建设最新国际新闻头条新闻
  • 如何设置网站布局网络推广网络营销软件
  • 设计网站平台西宁网站seo
  • 防城港网站制作关键词推广优化外包
  • 如何用vs做网站合肥网络seo
  • WordPress最好的免费主题seo试用软件
  • 企业网站平台利搜网站排名软件
  • icp备案网站接入信息ip地址段舆情网站
  • 大连网站制作哪家最好单页关键词优化费用
  • 乌鲁木齐网站制作公司可靠吗搜索引擎营销实训报告
  • 做军事网站的项目背景图片石家庄今天最新新闻头条
  • 做外贸有哪些网站顶尖文案
  • 徐州做网站经典模板网站建设
  • 成都网站运营公司的网站
  • 网站建设源文件极速建站网站模板
  • 各类设计型网站关键词组合工具
  • 雅昌网站做古董交易成人用品推广网页
  • 广州网站营销优化开发windows优化大师和鲁大师
  • 市场监督局网站电子签名怎么做网站备案查询官网
  • 网站建设公司做的网站桂平网络推广
  • 免费学习的网站平台爱站网爱情电影网