热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

功能强大|多种_ElasticSearch

篇首语:本文由编程笔记#小编为大家整理,主要介绍了ElasticSearch相关的知识,希望对你有一定的参考价值。Elast

篇首语:本文由编程笔记#小编为大家整理,主要介绍了ElasticSearch相关的知识,希望对你有一定的参考价值。




Elasticsearch 概述


ELK Stack技术栈, 包括 Elasticsearch、Kibana(展示数据)、Beats(轻量级采集传输数据) 和 Logstash(采集传输数据)。能够安全可靠地获取任何来源、任何格式的数据,然后实时地对数据进行搜索、分析和可视化。Elaticsearch,简称为 ES,ES 是一个开源的高扩展的分布式全文搜索引擎,是整个 Elastic Stack 技术栈的核心。它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理 PB 级别的数据。



Elasticsearch 入门




ELK官网




Elasticsearch全文搜索引擎windows服务端直接下载解压后,进入 bin 文件目录,点击 elasticsearch.bat 文件启动 ES 服务端



目录含义
bin可执行脚本目录
config配置目录
jdk内置 JDK 目录
lib类库
logs日志目录
modules模块目录
plugins插件目录


启动后如下所示:

注意:9300 端口为 Elasticsearch 集群间组件的通信端口,9200 端口为浏览器访问的 http 协议 RESTful 端口。




打开浏览器(推荐使用谷歌浏览器),输入地址:http://localhost:9200,测试结果。




客户端Postman安装


如果直接通过浏览器向 Elasticsearch 服务器发请求,那么需要在发送的请求中包含HTTP 标准的方法,而 HTTP 的大部分特性且仅支持 GET 和 POST 方法。所以为了能方便地进行客户端的访问,可以使用 Postman 软件。
Postman 是一款强大的网页调试工具,提供功能强大的 Web API 和 HTTP 请求调试。软件功能强大,界面简洁明晰、操作方便快捷,设计得很人性化。Postman 中文版能够发送任何类型的 HTTP 请求 (GET, HEAD, POST, PUT…),不仅能够表单提交,且可以附带任意类型请求体。



Postman 官网




数据格式


Elasticsearch 是面向文档型数据库,一条数据在这里就是一个文档。为了方便大家理解,我们将 Elasticsearch 里存储文档数据和关系型数据库 mysql 存储数据的概念进行一个类比。



索引相关操作




HTTP 创建索引




对比关系型数据库,创建索引就等同于创建数据库。在 Postman 中,向 ES 服务器发 PUT(创建) 请求 :http://127.0.0.1:9200/shopping




PS:幂等性就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。




HTTP 查询索引




查询索引,向 ES 服务器发起GET请求




获取索引的详细信息


http://127.0.0.1:9200/_cat/indices?v




HTTP 删除索引




删除索引,向 ES 服务器发起DELETE请求




文档相关操作




索引已经创建好了,接下来我们来创建文档,并添加数据。这里的文档可以类比为关系型数据库中的表数据,添加的数据格式为 JSON 格式。




HTTP 创建文档




创建文档,在 Postman 中,向 ES 服务器发 POST 请求 :http://127.0.0.1:9200/shopping/_doc



"title":"小米手机",
"category":"小米",
"images":"http://www.lala.com/xm.jpg",
"price":3900








HTTP 查询文档




查询文档,在 Postman 中,向 ES 服务器发 GET 请求




HTTP 修改文档




全量修改文档,在 Postman 中,向 ES 服务器发 PUT 请求



"title":"小米手机",
"category":"小米",
"images":"http://www.lala.com/xm.jpg",
"price":1000






局部修改文档,在 Postman 中,向 ES 服务器发 POST 请求,url地址需要将 _doc 修改成 _update


http://127.0.0.1:9200/shopping/_update/1002


"_doc":
"title":"华为"







HTTP 删除文档




删除文档,在 Postman 中,向 ES 服务器发 DELETE 请求




HTTP 查询的多种方法




url地址,条件查询


http://127.0.0.1:9200/shopping/_search?q=category:小米





请求体,条件查询



"query":
"match":
"category":"小米"








分页查询


from表示当前页数据的起始位置,第一页第一条数据的起始位置为0
size表示每页查询数据的条数


"query":
"match_all":

,
"from":0, // from表示当前页数据的起始位置,第一页第一条数据的起始位置为0
"size":3 // size表示每页查询数据的条数




起始位置计算公式




from : (页码-1) * 每页数据条数


例如:查询第二页的两条数据记录
from: (2-1)*2=2
size:2






分页查询并指定字段查询,只显示指定的字段



"query":
"match_all":

,
"from":2, // from表示当前页数据的起始位置,第一页第一条数据的起始位置为0
"size":2, // size表示每页查询数据的条数
"_source":["title"] // 指定字段查询,只显示指定的字段






分页查询并指定字段,对查询结果进行排序



"query":
"match_all":

,
"from":0, // from表示当前页数据的起始位置,第一页第一条数据的起始位置为0
"size":3, // size表示每页查询数据的条数
"_source":["title"], // 指定字段查询
"sort":
"price":
"order":"desc" // 排序








多条件查询,指定多个条件进行查询






"query":
"bool":
"must":[ // must条件同时成立

"match":
"category":"小米"

,

"match":
"price":1000


]







"query":
"bool":
"should":[ // should任意一个条件成立即可

"match":
"_id":1002

,

"match":
"price":1000


]







"query":
"bool":
"should":[ // should任意一个条件成立即可

"match":
"_id":1002

,

"match":
"category":"小米"


],
"filter": // 范围查询
"range":
"price":
"gt":2000 // 价格大于2000











HTTP 全文检索匹配规则




match模式,分词进行全文检索



"query":
"match": // match默认是分词进行全文检索
"category":"小华"








match_phrase模式,完全匹配进行全文检索



"query":
"match_phrase": // match_phrase 默认是不分词,完全匹配
"category":"小华"









高亮显示



"query":
"match_phrase":
"category":"小米"

,
"highlight": // 高亮显示
"fields":
"category":








HTTP 聚合查询



"aggs": //聚合操作
"price_group": //名称,随意起名
"terms": //分组
"field":"price" //分组字段


,
"size":0 //不要原始数据





"aggs": //聚合操作
"price_avg": //名称,随意起名
"avg": //平均值
"field":"price" //分组字段


,
"size":0 //不要原始数据






HTTP 映射关系






"properties":
"name":
"type":"text", //text文本可以分词查询
"index":true //index支持索引查询
,
"sex":
"type":"keyword", //keyword不能分词,必须完整匹配
"index":true //index支持索引查询
,
"tel":
"type":"keyword", //keyword不能分词,必须完整匹配
"index":false //index不支持索引查询












推荐阅读
  • 在安装并配置了Elasticsearch后,我在尝试通过GET /_nodes请求获取节点信息时遇到了问题,收到了错误消息。为了确保请求的正确性和安全性,我需要进一步排查配置和网络设置,以确保Elasticsearch集群能够正常响应。此外,还需要检查安全设置,如防火墙规则和认证机制,以防止未经授权的访问。 ... [详细]
  • 宝塔面板下启用HTTPS的详细指南
    本文提供了在宝塔面板环境中配置HTTPS的具体步骤,确保您的网站通信更加安全可靠。 ... [详细]
  • 本文探讨了在 PHP 的 Zend 框架下,使用 PHPUnit 进行单元测试时遇到的 Zend_Controller_Response_Exception 错误,并提供了解决方案。 ... [详细]
  • IntelliJ IDEA配置微服务启动显示
    通过编辑IntelliJ IDEA的workspace.xml文件,可以实现微服务启动对象的显示。具体步骤包括定位并修改workspace.xml中的RunDashboard部分。 ... [详细]
  • 本文详细介绍了PHP中的几种超全局变量,包括$GLOBAL、$_SERVER、$_POST、$_GET等,并探讨了AJAX的工作原理及其优缺点。通过具体示例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • Docker基础入门与环境配置指南
    本文介绍了Docker——一款用Go语言编写的开源应用程序容器引擎。通过Docker,用户能够将应用及其依赖打包进容器内,实现高效、轻量级的虚拟化。容器之间采用沙箱机制,确保彼此隔离且资源消耗低。 ... [详细]
  • Hadoop MapReduce 实战案例:手机流量使用统计分析
    本文通过一个具体的Hadoop MapReduce案例,详细介绍了如何利用MapReduce框架来统计和分析手机用户的流量使用情况,包括上行和下行流量的计算以及总流量的汇总。 ... [详细]
  • 本文探讨了使用Python实现监控信息收集的方法,涵盖从基础的日志记录到复杂的系统运维解决方案,旨在帮助开发者和运维人员提升工作效率。 ... [详细]
  • 本文回顾了作者在求职阿里和腾讯实习生过程中,从最初的迷茫到最后成功获得Offer的心路历程。文中不仅分享了个人的面试经历,还提供了宝贵的面试准备建议和技巧。 ... [详细]
  • 尽管在WPF中工作了一段时间,但在菜单控件的样式设置上遇到了一些基础问题,特别是关于如何正确配置前景色和背景色。 ... [详细]
  • 构建Elasticsearch环境与课程索引
    本章节详细介绍了如何在开发环境中搭建Elasticsearch (ES) 环境,包括安装、启动服务端以及创建索引和映射的具体步骤。对于旧版ES环境的清理方法也进行了说明。 ... [详细]
  • 本文介绍了如何在 Windows 系统上利用 Docker 构建一个包含 NGINX、PHP、MySQL、Redis 和 Elasticsearch 的集成开发环境。通过详细的步骤说明,帮助开发者快速搭建和配置这一复杂的技术栈,提升开发效率和环境一致性。 ... [详细]
  • 本文深入解析了Elasticsearch写入与查询的底层机制。在数据写入过程中,首先会将数据暂存至内存缓冲区,在此阶段数据尚不可被搜索。同时,为了保证数据的持久性和可靠性,系统会将这些数据同步记录到事务日志(translog)中。当内存缓冲区接近满载时,系统会触发刷新操作,将缓冲区中的数据写入到磁盘上的段文件中,从而使其可被搜索。此外,文章还探讨了查询过程中涉及的索引分片、倒排索引等关键技术,为读者提供了全面的技术理解。 ... [详细]
  • 告别jQuery:Bootstrap5即将全面脱离jQuery依赖及其他前端热点
    本文精选了2019年2月「前端大全」平台上的15篇热门文章,涵盖技术分享与资源推荐。关注前端大全,获取更多前沿信息,提升您的前端技能。 ... [详细]
  • 本项目基于网络上找到的一个启动动画包,针对Sony手机上的Miku启动动画进行了个性化调整,并重新打包以适应CM(CyanogenMod)系统。此版本旨在为CM用户提供更加个性化的启动体验。 ... [详细]
author-avatar
awetyjdgtjkt_933
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有