ES使用和搜索中心的建设(一:基础介绍与语法)
2020/4/7 17:01:42
本文主要是介绍ES使用和搜索中心的建设(一:基础介绍与语法),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一:elasticsearch 是什么
- elasticsearch 是一个高度可扩展的开开源的分布式 RESTful搜索和分析引擎
- 它具有快速,近乎实时存储,搜索和分析大量数据
- 它通常作为一个基础引擎技术为公司的搜索中心项目所用
二:为什么要学习elasticsearch
- 迄今为止最先进,性能最好,功能最全的搜索引擎库Lucene
- 分布式实时文件存储
- 支持横向扩展和纵向扩展。不需要程序去关注这些。
三:elasticsearch几个使用场景
- 如果你的公司有电商项目,可以使用elasticsearch存储商品,目录和库存,为用户提供搜索和自动补全搜索关键词的功能。
- 如果你想收集数据和日志信息,并且通过这些数据找到趋势,统计信息,摘要和异常,可以使用Logstash(Elasticsearch/Logstash/Kibana 堆栈的一部分功能)去收集、解析和汇总数据。然后将这些数据放入elasticsearch中,我们就可以在elasticsearch挖掘我们想要的数据信息。
- 全商品中心的商品降价推送。平台可以抓取所有供应商的价格,将其推送的elasticsearch并使用倒排功能(Percolator)与用户的查询相匹配,匹配合适就可以推送给用户购买。
- 使用Kibana(Elasticsearch/Logstash/Kibana stack)对elasticsearch存储的数据自定义仪表板。使用elasticsearch的聚合功能对数据进行复杂的商业智能查询。
四:安装es和Kibana
1:下载安装,运行,不多介绍,默认运行地址:http://localhost:9200/
2:安装Kibana,Kibana(sense)是一个和ES一起使用的开源分析和可视化平台。安装成功后启动 http://localhost:5601/app/sense
3:Kibana界面->dev_tools->控制台,demo如下:查询所有的数据
返回参数 | 含义 |
---|---|
took | 耗费时间(毫秒) |
time_out | 是否超时(默认无) |
_shards | 数据的分片,total:分片总数 successful:分片成功数 |
hits.total | 查询结果集数量(多少个document) |
hits.max_score | 文档与查询的匹配程度,越匹配分数越高 |
hits.hits | 返回文档数据详情,是一个数组,每个数组包含排名前十的文档 |
_index | 文档存储的地方 |
_type | 文档代表的对象的类 |
_id | 文档的唯一标识 |
_source | 存储的json字符串 |
五:ES的通信
- java语言可以使用elasticsearch内置的两个客户端-节点客户端和传输客户端与es进行交互
- 其他的语言使用 RESTful API 通过端口和 Elasticsearch 进行通信
- 也可以直接通过curl命令直接和es交互
六:数据
1:文档 (document)
ES面向文档的存储方式。文档(document)是ES根对象(root object)序列化的数据,包含存储的数据(_source)和其他的对象信息。
2:索引(indexing)
- ES中存储数据的行为就叫做索引,文档存在索引中,相当于关系数据库的DB
- 也可以不单独创建索引,直接建立文档,索引也直接创建
参数 | 含义 |
---|---|
hosjoy | 索引名 |
employee | 类型名 |
1 | 员工的id |
3:搜索
-
直接搜索,索引/类型/id
-
搜索一个类型的全部数据,id替换为_search
-
匹配文档数据内容(查询字符串搜索)q=
- DSL(Domain Specific Language特定领域语言)语句查询
- 全文检索
4:更新
- 直接可以根据索引id修改json值
5: 删除
这篇关于ES使用和搜索中心的建设(一:基础介绍与语法)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求
- 2024-10-01使用 golang 将ETH账户的资产平均分散到其他账户
- 2024-10-01JWT用户校验课程:从入门到实践
- 2024-10-01Server Component课程入门指南
- 2024-09-30Dnd-Kit学习:新手快速入门指南