ElasticSearch环境准备

Elasticsearch 是一个基于 Apache Lucene™ 的开源搜索引擎。不仅仅是一个全文搜索引擎,它还是一个分布式的搜索和分析引擎,可扩展并能够实时处理大数据。以下是关于 Elasticsearch 的一些主要特点和说明:
1.实时分析:Elasticsearch 能在大量数据上执行复杂的查询,并迅速返回结果。
2.分布式设计:它自动将数据分片,并在集群的不同节点上复制这些分片,以提供冗余和高可用性。
3.高可扩展性:可以简单地添加新节点,而 Elasticsearch 会自动重新平衡和路由数据。
4.多种数据类型:除了文本外,Elasticsearch 还可以处理结构化数据、数值、地理位置等数据。
5.基于 JSON:数据结构为 JSON 文档,并使用 HTTP RESTful API 进行通信。
6.灵活的查询语言:Elasticsearch 提供了一种非常灵活的查询语言,可以执行简单的文本查询到复杂的聚合查询。
7.集成与客户端库:Elasticsearch 提供了多种语言的官方客户端,如 Java、Python、PHP、JavaScript 等。
Elasticsearch 在许多应用中被广泛使用,包括日志和事件数据分析、内容搜索、数据可视化、地理搜索等。无论是在大型企业还是在初创公司,它都是实时搜索和分析大数据的流行选择。在本应用中,我们有大量的非结构化文档要存储(PDF、TXT和HTML),而ElasticSearch恰好可以帮助我们实现相应的检索功能。
我们通过Docker可以很方便的下载并启动一个ElasticSearch服务,执行下列命令即可。

docker pull docker.elastic.co/elasticsearch/elasticsearch:8.10.2
docker run --name es01 -d -p 9200:9200 -it -m 1GB docker.elastic.co/elasticsearch/elasticsearch:8.10.2

需要注意的是,如果在Windows上通过Docker(WSL 2支持)启动ElasticSearch,遇到报错“node validation exception\n[1] bootstrap checks failed. You must address the points described in the following [1] lines before starting Elasticsearch.\nbootstrap check failure [1] of [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]”,则需要配置一个参数。

wsl -d docker-desktop -u root
vi /etc/sysctl.conf

然后在文件中添加下面这一行。

vm.max_map_count = 262144

ElasticSearch第一次启动时,会创建一个默认用户elastic以及一个密码,如图6.x所示。这个用户认证信息只有在第一次启动时才会打印,因此我们需要将这个账号和密码记下来。
在这里插入图片描述

如果要在本地通过https链接到ElasticSearch,则还需要拷贝SSL证书到本地。

docker cp es01:/usr/share/elasticsearch/config/certs/http_ca.crt .

接下来我们可以通过Python的Elasticsearch库进行基本的Elasticsearch操作。
1.安装elasticsearch

pip install elasticsearch

2.设置和初始化连接

from elasticsearch import Elasticsearch
client = Elasticsearch("https://localhost:9200",ca_certs="./http_ca.crt",basic_auth=("elastic", "R+JWq7gBc4_rAPSN3gj7")
)

该部分首先从elasticsearch模块导入Elasticsearch类。然后,创建一个Elasticsearch客户端实例,并连接到本地运行在9200端口上的Elasticsearch服务器。使用ca_certs参数指定证书路径,并使用basic_auth参数为连接提供身份验证凭证。
3.创建索引

client.indices.create(index="my_index", ignore=400)

这个命令尝试在Elasticsearch中创建一个名为my_index的新索引。ignore=400意味着如果索引已存在,将忽略400错误。
4.向索引中添加文档

client.index(index="my_index",id="my_document_id",document={"foo": "foo","bar": "bar",}
)

通过index方法将一个新文档添加到my_index索引中,并为其分配一个ID为my_document_id
5.检索文档

client.get(index="my_index", id="my_document_id")

该命令从my_index索引中检索ID为my_document_id的文档。
6.搜索文档

client.search(index="my_index", query={"match": {"foo": "foo"}
})

my_index索引中执行一个搜索查询,查找字段foo值为foo的文档。
7.更新文档

client.update(index="my_index", id="my_document_id", doc={"foo": "bar","new_field": "new value",
})

更新ID为my_document_id的文档,更改字段foo的值并添加一个新字段new_field
8.删除文档

client.delete(index="my_index", id="my_document_id")

my_index索引中删除ID为my_document_id的文档。
9.删除索引

client.indices.delete(index="my_index")

删除整个my_index索引。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/130628.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于VMware Workstation Pro中虚拟机无法连接外网问题解决

解决方案 1.虚拟机设置 打开虚拟机设置,将网络设备器修改为NAT模式。注意如果是克隆的多个虚拟机,需要将高级(V)里面的mac地址进行重新生成。 2.配置虚拟网络编辑器 进入虚拟网络编辑器后,将子网和子网掩码进行修…

CRMEB 标准版商城系统新增主题风格颜色【超级完整教程】

一、后台 1.新增主题图片 assets/images/brown.jpg和assets/images/brownsign.png 2.修改admin/src/pages/setting/themeStyle/index.vue 3.修改admin/src/pages/marketing/sign/index.vue 4.修改admin/src/pages/system/group/visualization.vue (第三步和第四步…

软件行业与就业(导师主讲)

在企业软件应用的整体架构体系中,有一部分被称为中间件,那么什么叫中间件? 中间件(Middleware)是指位于操作系统和应用程序之间的一层软件层,它提供了一组工具和服务,用于简化和增强企业软件应用…

MySQL之MHA集群

MHA概述 什么是 MHA MHA(MasterHigh Availability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。 MHA 的出现就是解决MySQL 单点故障的问题。 MySQL故障切换过程中,MHA能做到0-30秒内自动完成故障切换操作。 MHA能在故障切换…

[羊城杯 2020]easyser - 反序列化+SSRF+伪协议(绕过死亡die)

[羊城杯 2020]easyser 一、解题过程(一)、一阶段(二)、二阶段 二、思考总结 一、解题过程 (一)、一阶段 可以直接使用ctf-wscan扫描一下有什么文件,或者直接试试robots.txt能不能行 直接打开…

岛屿的数量

题目描述 给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。 岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外,你可以…

见微知著:从企业售后技术支持看云计算发展

作者:余凯 售后业务中的细微变化 作为阿里云企业容器技术支持的一员,每天会面对全球各地企业级客户提出的关于容器的各种问题,通过这几年的技术支持的经历,逐步发现容器问题客户的一些惯性,哪些是重度用户&#xff0…

SpringBoot集成WebSocket讲解

文章目录 1 WebSocket1.1 简介1.2 WebSocket作用和调用1.2.1 作用1.2.2 js端调用 1.3 Javax1.3.1 服务端1.3.1.1 服务端接收1.3.1.2 服务端集成1.3.1.3 ping和pong消息 1.3.2 客户端1.3.2.1 客户端接收1.3.2.2 客户端发送 1.4 WebMVC1.4.1 服务端1.1.4.1 服务端接收1.1.4.2 服务…

QT:工业软件开发的首选“

QT:工业软件开发的首选,强大的GUI框架与多功能扩展" 在工业软件开发领域,主要从事自动化、机械自动化和电气自动化的人员通常使用C或C作为主要编程语言。然而,在当今互联网发展的背景下,Qt成为了C中唯一可靠的G…

南昌新颜|AIGC艺术之光,历史的魅力与未来的探索

在这个本来稀松平常的周一,我们坐在电脑前,回顾着刚刚过去的两天,仿佛经历了“反方向的钟”。前两天的上班日子,究竟是周几呢?答案不再是简单的星期几,而是“周负二”和“周负一”。因为,我们把…

安装libX11过程记录

目录 编译平台 准备工作 参考信息源 安装步骤 1 建立文件夹/opt/libX11target 2 定义环境变量PKG_CONFIG_PATH 3 安装xproto-7.0.31 3.1 下载xproto-7.0.31 3.2 解压 3.3 进入解压后的文件夹 3.4 建立build文件夹 3.5 cd build 3.6 配置 3.7 make 3.8 sudo ma…

什么是大数据,大数据简介

大数据的概念通俗的说法 大数据,按照我的理解比较通俗易懂的是在数据量很多很大的情况下数据处理速度需要足够快,用我们以前传统意义上的的技术比如关系型数据库mysql没办法处理或者处理起来非常复杂,必须有一些新的处理技术也就是大数据处理…