一、elasticsearch的简介与安装

news2024/11/28 23:38:11

目录

一、Elasticsearch下载

 二、安装

三、启动

 四、安装可视化插件(elasticsearch-head)

1、下载地址

2、解压缩下载好的压缩文件

3、进入解压缩目录

五、解决跨域问题


 Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性,能使数据在生产环境变得更有价值。

Elasticsearch 的实现原理主要分为以下几个步骤

  1. 首先用户将数据提交到Elasticsearch 数据库中
  2. 再通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据
  3. 当用户搜索数据时候,再根据权重将结果排名,打分
  4. 再将返回结果呈现给用户。

Elastic Stack(ELK stack)

E---Elasticsearch  数据存储、查询

L---Logstash 数据收集和日志解析引擎

K---Kibana 分析和可视化平台

        Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。Elasticsearch是分布式的,这意味着索引可以被分成分片,每个分片可以有0个或多个副本。每个节点托管一个或多个分片,并充当协调器将操作委托给正确的分片。再平衡和路由是自动完成的。相关数据通常存储在同一个索引中,该索引由一个或多个主分片和零个或多个复制分片组成。一旦创建了索引,就不能更改主分片的数量。

        Elasticsearch的底层是开源库 Lucene。但是,你没法直接用 Lucene,必须自己写代码去调用它的接口。Elasticsearch是 Lucene 的封装,提供了 REST API 的操作接口,开箱即用。

总结起来就是,在大数据量时使用Elasticsearch可以提高搜索效率。

        最常见的使用场景就是电商网站搜索商品,或者在日志系统中搜索日志时,或者百度等搜索引擎等等。如果使用传统的关系型数据库进行模糊查询,那么就有可能会出现索引失效的情况,导致执行效率非常的低(数据量大的情况下)

如:select  age  from user where name like “%航%” 

Elasticsearch概念(以下简称Elastic )

关系型数据库

Elasticsearch

数据库(database)

索引index

表(tables)

类型Types(8.x后会弃用)

行(rows)

文档documents

字段(columns)

字段fields

        Elastic (集群)中可以包含多个索引(数据库),每个索引中可以包含多个类型(表),每个类型下可以包含多个文档(行),每个文档中可以包含多个字段(列)文档可以嵌套

1、 Node 与 Cluster

Elastic 本质上是一个分布式数据库,允许多台服务器协同工作,每台服务器可以运行多个 Elastic 实例。

单个 Elastic 实例称为一个节点(node)。一组节点构成一个集群(cluster)。

2、 Index(相当于MySQL中的Database)

Elastic 会索引所有字段,经过处理后写入一个反向索引(Inverted Index)。查找数据的时候,直接查找该索引。

所以,Elastic 数据管理的顶层单位就叫做 Index(索引)。它是单个数据库的同义词。每个 Index (即数据库)的名字必须是小写。

3、 Document(相当于MySQL中的Table里的行记录)

Index 里面单条的记录称为 Document(文档)。

许多条 Document 构成了一个 Index。

Document 使用 JSON 格式表示,下面是一个例子。

{

  "user": "张三",

  "title": "工程师",

  "desc": "数据库管理"

}

同一个 Index 里面的 Document,不要求有相同的结构(scheme),但是最好保持相同,这样有利于提高搜索效率。

4、 Type(相当于MySQL中的Table)------以后会弃用,了解即可

Document 可以分组,比如weather这个 Index 里面,可以按城市分组(北京和上海),也可以按气候分组(晴天和雨天)。这种分组就叫做 Type,它是虚拟的逻辑分组,用来过滤 Document。

不同的 Type 应该有相似的结构(schema),举例来说,id字段不能在这个组是字符串,在另一个组是数值。这是与关系型数据库的表的一个区别。性质完全不同的数据(比如products和logs)应该存成两个 Index,而不是一个 Index 里面的两个 Type(虽然可以做到)。

elasticsearch下载、安装、启动

一、Elasticsearch下载

声明:最低要求JDK1.8(需要配置号当前的Java环境变量)

官网下载:Download Elasticsearch | Elastic

 二、安装

将步骤一下载好的文件(elasticsearch-7.6.1-windows-x86_64.zip)解压缩到合适的路径下(一般路径不含中文、空格)

目录介绍:

bin  启动文件

config 配置文件

   log4j2.properties  日志配置

   jvm.options   java虚拟机相关参数的配置

   elasticsearch.yml  elasticsearch默认配置文件,默认9200端口

jdk  java环境相关

lib  elasticsearch相关jar包

logs 日志文件

modules 功能模块

plugins  插件安装位置,如ik分词器插件

三、启动

进入elasticsearch目录的bin目录,双击打开elasticsearch.bat启动

启动完成后访问http://127.0.0.1:9200/

 四、安装可视化插件(elasticsearch-head)

声明:elasticsearch-head是一个前端项目,启动时需要依托nodejs,所以需要提前安装好nodejs

1、下载地址

https://github.com/mobz/elasticsearch-head

2、解压缩下载好的压缩文件

3、进入解压缩目录

npm install(需要联网,最终在解压缩的目录下得到一个文件夹node_modules)

首次运行时需要执行此命令,后续则直接进到解压缩目录直接运行启动命令即可

启动运行

npm run start

访问http://localhost:9100/

 此时发现连接不上elasticSearch,F12打开控制台窗口

 发现是由于跨域导致访问失败

跨域问题:

http://localhost:9200/

http://localhost:9100/

请求协议://IP:端口号

只要协议、IP、端口号有一个不同都是跨域

五、解决跨域问题

打开elasticsearch的配置文件,在最后添加跨域支持,保存修改重启服务即可

D:\elasticSearch\elasticsearch-7.6.1\config\elasticsearch.yml

http.cors.enabled: true

http.cors.allow-origin: "*"

 重启elasticsearch服务后重新访问http://localhost:9100/

         一般可以使用head插件作为数据展示的工具,elasticSearch的相关操作指令(新增索引,查询等操作)通过kibana来完成

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

端午节出行的小贴士——行之安,乐之逍

亲爱的朋友们, 随着端午节的到来,想必许多人已经开始期待那份出游的快乐与解脱。无论你是期待漫步在宁静的田野小径,还是在繁华的城市中探索,这篇文章都会给你一些实用的端午节出行建议,帮助你尽情享受旅程。 首先&a…

Airtest图像识别测试工具原理解读最佳实践 | 京东云技术团队

1 Airtest简介 Airtest是一个跨平台的、基于图像识别的UI自动化测试框架,适用于游戏和App,支持平台有Windows、Android和iOS。Airtest框架基于一种图形脚本语言Sikuli,引用该框架后,不再需要一行行的写代码,通过截取按…

如何利用数据化营销助力新零售企业发展?”

​“新零售”这个概念诞生至今已有5年,但对于其具体的定义,行业内仍然有许多争议。有人认为“新零售”是对传统零售模式的颠覆;也有人认为“新零售”就是将线上和线下相结合。不论如何,在这个不断变化的行业中,新零售企…

使用omp技术实现wordcount算法

【问题描述】 编写程序统计一个英文文本文件中每个单词的出现次数(词频统计),并将统计结果按单词字典序输出到屏幕上。 注:在此单词为仅由字母组成的字符序列。包含大写字母的单词应将大写字母转换为小写字母后统计。 【输入形…

智能数字资产管理系统,全面提升企业的管理效率

智能数字资产管理系统,能够为企业带来很多成果,提高企业管理效率。让程序简单化,提升组织生产率,可以帮助企业以更有效的方式企业实现目标。 研发背景 智能数字资产管理系统 系统功能 1.可以实现数字资产全生命周期的管理&#…

大厂月薪15K被优化,面试 “吹牛” 入职小厂,月薪25K 好慌...

某大厂员工被优化,面试“吹牛”入职小厂,纠结去不去,心里有点慌。 作为一个从福报厂出来的HR,目前在100多人的小厂当HR总监。面对这种情况已经是见怪不怪了。作为小厂,没有大厂那么严格的背调,所以有些来自…

端口映射的作用?如何在路由器上做端口映射

一、端口映射作用 路由器中设置端口映射的主要作用,就是让Internet上的其他用户,可以访问你路由器下面电脑中的数据(软件、文件)。 当家里的电脑使用路由器上网后,在Internet下的其它电脑、手机等网络设备,将无法自接访问你电脑…

C++ 反汇编简要

摘要:本文主要描述x86_64机器中C代码在汇编中的具体代码。   关键字:cpp,IA32,asm   注意:本书假定你拥有基本的C软件开发能力,能够理解基本的C代码。并且熟悉汇编代码,了解基本的取址模式并且熟悉IA32指令集&…

基于LDA与PCA算法的鸢尾花数据集二维投影比较

目录 1. 作者介绍2. LDA和PCA算法介绍2.1 LDA算法2.2 PCA算法2.3 两个算法的区别与联系 3. 实验过程3.1 数据集介绍3.2 算法流程3.3 核心算法介绍3.4 完整代码3.5 实验结果与分析 1. 作者介绍 王鑫,男,西安工程大学电子信息学院,2022级研究生…

70+页实战经验分享,《研发效能红宝书》重磅发布 | 附下载

研发效能提升方法从来没有标准答案,不同角色的人,以不同的目标搭建效能体系的方法千差万别,但又存在互通之处。所以做研发效能更需要多方借鉴,然后因地制宜,找到适合自己的方式。于是,我们汇集业界多位效能…

shell脚本解析 01

一、shell 概述 1.shell 的两层含义: 既是一种应用程序,又是一种程序设计语言 a.作为应用程序: 交互式地解释、执行用户输入的命令,将用户的操作翻译成机器可以识别的语言,完成相应功能。称之为 shell 命令解析器。shell 是用户和…

DreamBooth论文解读

文章目录 摘要问题算法3.1 文生图扩散模型3.2 个性化文生图模型3.3 特定类别先验保留损失 实验评估方式比较消融实验PPL类别先验 应用限制 结论 论文: 《DreamBooth: Fine Tuning Text-to-Image Diffusion Models for Subject-Driven Generation》 project&#xf…

yueyin uart ip 使用说明文档

目录 1 概述2 IP功能3 IP端口4 收发数据时序4.1 Uart_tx接口4.2 Uart_rx接口5 获取IP地址 1 概述 本文用于讲解yueyin IP 的uart ip(串口/rs422/rs485/rs232)的功能,以及使用说明,方便使用者快速上手。 版本:V1.0.0 编…

行业报告 | 清华大学AIGC发展研究1.0震撼发布!(技术+未来篇)

文 | BFT机器人 01 技术篇 深度学习进化史:知识变轨 风起云涌 已发生的关键步骤: 人工神经网络的诞生 反向传播算法的提出 GPU的使用 大数据的出现 预训练和迁移学习 生成对抗网络 (GAN) 的发明 强化学习的成功应用 自然语言处理的突破 即将发生的关键步骤…

基于matlab对传感器阵列中的扰动和元件故障进行建模(附源码)

一、前言 本示例展示了如何对传感器阵列中的幅度、相位、位置和模式扰动以及晶片故障进行建模。 二、振幅扰动 本节介绍如何在 10 个晶片的均匀线性阵列 (ULA) 上添加增益或幅度扰动。将扰动视为统计上独立的零均值高斯随机变量,标准差为 0.1…

Linux内核进阶----整体框架及子系统概览

目录 1、概述 2、核心抽象及设计选型 2.1. 对进程和内核的抽象 2.2. 对进程地址空间的抽象 2.3. 支持可重入可抢占的内核 2.4. 放松管控与努力回收 2.5. 单块结构内核动态加载模块 2.6. 为系统中的一切活动打拍子 2.7. 一切皆文件的理念 3、Linux整体架构模块说明 3.…

Pnpm实现Monorepo风格项目搭建

Monorepo是什么 与Monorepo对比的是MutiRepo。对于一个复杂的前端架构通常会有多个npm package组成。repo指的是版本仓库。如果多个package放在一个repo仓库中就叫做monorepo。 目前有不少大型开源项目采用了这种方式,如 Babel,React, Meteor, Ember, …

基于Hexo和Butterfly创建个人技术博客,(12) 定制化博客站点高级功能,如搜索、在线聊天、自定义样式等

Butterfly官方网站,请 点击进入 部分特效来源于网站的总结,请点击进入 本章目标: 选择自己需要的内容,然后加以实现。本文中涉及的修改方式主要包含三种:1、修改源码;2、扩展源码;3、添加插件&a…

项目进度延误怎么办?给项目经理的6个处理提示

有研究调查称,只有2.5%的企业能100%成功完成他们的项目。影响项目成功的因素有很多,但对项目生产力造成严重损失的一个重要方面是项目延误。 无论是同事请病假,还是客户想要返工,许多事情都可能导致项目延误。当发生这些情况&…

桥梁监测系统多少钱?桥梁监测系统组成部分有哪些?

桥梁作为大多数城市和国家的重要设施,为居民提供了交流和沟通的纽带。然而,随着时间的推移、超荷载的运输和不间断的环境影响,桥梁的状态日益恶化。为了更好的了解桥梁的结构状态,保障桥梁的安全性和可靠性,桥梁监测系…