Elasticsearch初步了解学习记录

这篇具有很好参考价值的文章主要介绍了Elasticsearch初步了解学习记录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

前言

一、ElasticSearch是什么?

二、使用步骤(python版)

1.引入包

2.连接数据库

3.创建索引

4.写入数据

5.查询数据

三、相关工具介绍

1.ES浏览器插件

总结


前言

随着数据量的不断增加,传统的查询检索在速度上遇到了瓶颈,这个时候就需要一个更具性能的技术来支持大数据量的查询检索,本文就介绍下Elasticsearch。


一、ElasticSearch是什么?

Elasticsearch(ES)是一个基于Apache Lucene构建的开源搜索引擎,它提供了强大的搜索、分析和聚合功能,具有快速、可扩展和易于使用的特点。为了更好地理解ES,以下是一些关键概念:

对于新手来说,有限关注索引、文档的概念即可,以及就是写入、查询。

  1. 索引(Index)

    • 类似于关系数据库中的数据库。它是一个逻辑命名空间,用于存储相关文档。
    • 索引可以包含多个类型(type),尽管在Elasticsearch 7.0之后,一个索引只允许有一个类型。
  2. 类型(Type)(在Elasticsearch 7.0之后已废弃)

    • 在早期版本中,类型类似于关系数据库中的表,用于区分索引中的不同文档类型。
    • 从Elasticsearch 8.0开始,类型的概念已经被移除。
  3. 文档(Document)

    • 存储在Elasticsearch中的JSON对象。
    • 文档由字段组成,每个字段都有其特定的数据类型,如文本、数字或日期。
  4. 字段(Field)

    • 文档中的数据单元,类似于关系数据库中的列。
    • 字段可以是简单的数据类型,也可以是复杂的数据结构,如对象或数组。
  5. 映射(Mapping)

    • 定义索引中每个类型的字段及其数据类型的过程。
    • 映射还定义了如何分析字段值,以便它们可以被有效地索引和搜索。
  6. 节点(Node)

    • Elasticsearch集群中的一个服务器实例。
    • 节点可以有不同角色,如主节点(管理集群状态)、数据节点(存储数据)和协调节点(处理客户端请求)。
  7. 集群(Cluster)

    • 一个或多个节点的集合,它们协同工作,提供索引和搜索功能。
    • 集群提供跨所有节点的联合索引和搜索能力。
  8. 分片(Shard)

    • 索引可以被分割成多个部分,每个部分就是一个分片。
    • 分片可以分布在集群中的不同节点上,这允许水平扩展和性能提升。
  9. 副本(Replica)

    • 分片的副本,用于提供数据的冗余和高可用性。
    • 副本还可以处理搜索请求,提高搜索性能。
  10. 查询DSL(Domain Specific Language)

    • Elasticsearch使用一种基于JSON的查询语言,称为查询DSL,用于执行搜索和其他操作。

这些概念构成了Elasticsearch的核心架构和操作方式。了解这些概念对于有效地使用Elasticsearch至关重要。

二、使用步骤(python版)

1.引入包

from elasticsearch7 import Elasticsearch, helpers

2.连接数据库

# 1. 创建Elasticsearch连接
es = Elasticsearch(
    hosts=["http://127.0.0.1:9200"],  # 服务地址与端口
    http_auth=("user", "password"),  # 用户名,密码
)

3.创建索引

# 2. 定义索引名称
index_name = "test_index_01"

# 3. 如果索引已存在,删除它(仅供演示,实际应用时不需要这步)
if es.indices.exists(index=index_name):
    es.indices.delete(index=index_name)

# 4. 创建索引
es.indices.create(index=index_name)

4.写入数据

# 构建测试数据
docs=[]
docs.append("He is a good boy")
docs.append("I like to eat apple")
docs.append("She is a good girl")
docs.append("My name is John")
docs.append("My team is the best")

# 5. 灌库指令
# to_keywords 进行了分词处理,以便全文检索
actions = [
    {"_index": index_name, "_source": {"keywords": to_keywords(doc), "text": doc}}
    for doc in docs
]

# 6. 文本灌库
helpers.bulk(es, actions)

5.查询数据

# ES 的查询语言
# keywords 是写入数据时候定义的字段,本例也可以按text原始内容查询
search_query = {"match": {"keywords": to_keywords(query_string)}}
res = es.search(index=index_name, query=search_query, size=top_n)
# 取出查询到的记录
return [hit["_source"]["text"] for hit in res["hits"]["hits"]]

三、相关工具介绍

Elasticsearch通常与两个其他开源项目一起被提及,这三个项目合称为“Elastic Stack”,也被称为“ELK Stack”。三剑客这个名称听起来更霸气。这三个项目分别是:

  1. Elasticsearch

    • 强大的搜索引擎,用于快速地存储、搜索和分析大量数据。
    • 它提供实时搜索和数据分析功能。
  2. Logstash

    • 一个数据收集引擎,用于处理、丰富和传输数据。
    • Logstash可以从多个来源(如日志文件、系统日志等)收集数据,然后转换和传输这些数据到Elasticsearch。
  3. Kibana

    • 一个数据可视化工具,用于在Elasticsearch中查看和分析数据。
    • Kibana提供了丰富的可视化功能,如图表、地图和仪表板,可以帮助用户理解复杂的数据模式。

这三个工具共同工作,提供了一个强大的解决方案,用于数据收集、存储、搜索、分析和可视化。由于Elasticsearch、Logstash和Kibana的首字母分别是E、L和K,因此它们通常被称为“ELK Stack”。不过,随着Elastic Stack的发展,现在还包括了其他工具,如Beats(轻量级数据传输工具),因此有时也被称为“Elastic Stack”。

1.ES浏览器插件

这个工具专门介绍下,他可以方便的查看ES的index、具体index的数据、以及查询。这个工具主要是很轻量化,属于edge、Chrome浏览器的一个插件,这里我以edge为例说明使用。

edge浏览器右上角…——扩展——打开Microsoft Edge加载项——左上角搜索框输入“elasticsearch head”,右侧就可以搜索出这个插件

Elasticsearch初步了解学习记录,数据库,# Elasticsearch,es,ElasticSearch,全文检索

点击安装即可。

下次使用的时候,点击浏览器扩展,再点击es-client即可打开主界面

 然后就是具体使用了,自己操作下就会了,很简单的。


总结

以上就是今天要讲的内容,本文主要介绍了ES的初步使用,包括基本概念、代码连接数据库、创建索引、写数据、查数据等,最后介绍了一些相关的工具。

当然,实践才是更好的学习途径。文章来源地址https://www.toymoban.com/news/detail-853295.html

到了这里,关于Elasticsearch初步了解学习记录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • OB数据库基础知识(学习记录)

    目录 OB业务场景 公司使用理由: 常见 bootstrap 失败原因 常见OBD 部署 失败原因 Grafana  查看集群资源由各个节点的聚合情况  OB创建租户 表分组的场景 mysqldump到处数据库schema,数据库数据,表数据 数据同步框架 DATAX obdumper使用注意事项 obdumper调优 obloader使用注意事项  什么

    2024年02月14日
    浏览(40)
  • mongoDB非关系型数据库学习记录

    MongoDB是一个 基于分布式文件存储的数据库 ,官方地址https://www.mongodb.com/ 数据库(DataBase)是按照数据结构来组织、存储和管理数据的 应用程序 数据库的主要作用就是管理数据,对数据进行增©、删(d)、改(u)、查® 相比于纯文件管理数据,数据库管理数据有如下特点: 速度更快 扩展

    2024年02月04日
    浏览(44)
  • MongoDB:数据库初步应用

    1.MongoDBCompass连接数据库 连接路径:mongodb://用户名:密码@localhost:27017/ 2.创建数据库(集合) MongoDB中数据库被称为集合.  MongoDBCompass连接后,点击红色框加号创建集合,点击蓝色框加号创建文档(数据表) 文档中的数据结构(相当于表中的列)设计不用管,添加数据的时候,自动创建列和数

    2024年02月12日
    浏览(47)
  • Django的数据库配置、生成(创建)过程、写入数据、查看数据的学习过程记录

    在文件:\\\"E:Python_projectP_001myshop-testmyshopmyshopsettings.py\\\"中写入以下数据库的配置信息: 上面的代码比较好理解,就是对于语句: django.db.backends.mysql 作一些说明: 在Django中, \\\'django.db.backends.mysql\\\' 是一个数据库后端引擎的路径,用于指定使用MySQL作为数据库的后端。数据库后

    2024年02月12日
    浏览(56)
  • 2023-08-28 数据库-并发控制-初步思考

    此前做查询优化和查询执行比较多, 一般是在一个单独的事务内考虑优化查询. 最近在做并发控制方面的事情, 一些此前考虑的较少的方面需要做更为深入的思考. 并发控制和事务的特性息息相关, 直白的说就是事务的隔离性, 但是这么理解过于肤浅, 本文做一些初步的思考. 一个

    2024年02月11日
    浏览(44)
  • postgresql|数据库|MySQL数据库向postgresql数据库迁移的工具pgloader的部署和初步使用

    MySQL数据库和postgresql数据库之间的差异并不多,这里的差异指的是对SQL语言的支持两者并不大,但底层的东西差异是非常多的,例如,MySQL的innodb引擎概念,数据库用户管理,这些和postgresql相比是完全不同的(MySQL用户就是用户,没有角色,postgresql有用户,有角色,但差异不

    2024年02月14日
    浏览(85)
  • MySql数据库的初步安装与数据表结构数据管理

    目录 一、数据库的相关了解 1)数据库的概念  数据(Data) 表 数据库系统 2)数据库系统发展史 第一代数据库 第二代数据库 第三代数据库 当今主流数据库介绍 2)数据库的分类  关系数据库 非关系型数据库 非关系型数据库的优点 二、mysql的yum安装与源码编译安装   1)源

    2024年02月08日
    浏览(443)
  • Django学习记录:使用ORM操作MySQL数据库并完成数据的增删改查

    数据库操作 MySQL数据库+pymysql Django开发操作数据库更简单,内部提供了ORM框架。 安装第三方模块 ORM可以做的事: 1、创建、修改、删除数据库中的表(不用写SQL语句)。【无法创建数据库】 2、操作表中的数据(不用写SQL语句)。 1、自己创建数据库 1)启动MySQL服务 2)自带

    2024年02月14日
    浏览(63)
  • 一文了解数据库,数据仓库,数据湖,数据集市,数据湖仓

    目录 一、定义 1. 数据库(Database) 2. 数据仓库(Data Warehouse) 3. 数据湖(Data Lake) 4. 数据集市(Data Mart) 5. 数据湖仓(Data Lakehouse) 二、相同、异同 2.1 相同点 2.2 不同点 三、常见的工具 数据库: 数据仓库: 数据湖: 数据集市: 数据湖仓: 当然,以下是关于数据库、数

    2024年01月17日
    浏览(54)
  • 一文了解数据库vs数据仓库vs数据湖

    大家好,我是KD,一名10年以上大数据架构研发经验从业者,目前主要从事云原生大数据方向设计,擅长云原生技术、数据架构、数据平台构建、大数据组件性能调优 以下是本文目录: 什么是数据库? 为什么会有数据仓库? 拆解几个OLAP核心概念 大数据技术架构演进过程 什

    2024年01月23日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包