ElasticSearch(一)【简介】

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

一、ES简介


1.1 概述

什么是ElasticSearch

ElasticSearch简称ES,是基于Apache Lucene构建的开源搜索引擎,是当前最流行的企业级搜索引擎。Lucene本身就可以被认为迄今为止性能最好的一款开源所搜引擎工具包,但是Lucene的API相对复杂,需要深厚的搜索理论。很难集成到实际应用当中去。ES采用Java语言编写,提供了简单易用的Restful API,开发者可以使用其简单的Restful API,开发相关的搜索功能,从而避免Lucene的复杂性

ElasticSearch诞生

多年前,一个叫做Shay Banon的刚结婚不久的失业开发者,由于妻子要去伦敦学习厨师,他便跟着也去了。在他找工作的过程中,为了给妻子构建一个食谱的搜索引擎,他开始构建一个早期版本的Lucene

直接基于Lucene工作会比较困难,所以Shay开始抽象Lucene代码以便Java程序员可以在应用中添加搜索功能。他发布了他的第一个开源项目,叫做"Compass"

后来Shay找到一份工作,这份工作处在高性能和内存数据网格的分布式环境中,因此高性能的、实时的、分布式的搜索引擎也是理所当然需要的。然后他决定重写Compass库使其成为一个独立的服务叫做Elasticsearch

第一个公开版本出现在2010年2月,在那之后Elasticsearch已经成为Github上最受欢迎的项目之一,代码贡献者超过300人。一家主营Elasticsearch的公司就此成立,他们一边提供商业支持一边开发新功能,不过Elasticsearch将永远开源且对所有人可用

全文检索

全文检索是计算机程序通过扫描文章中的每一个词、对每一个词建立一个索引,指明该词在文章中出现的次数位置。当用户查询时,根据建立的索引查找,类似于通过字典的检索字表查字的过程

全文索引(Full-Text Retrieval)以文本作为检索对象,找出含有指定词汇的文本。全面、准确和快速是衡量全文检索系统的关键指标

  • 只处理文本、不处理语义
  • 搜索时英文不区分大小写
  • 结果列表有相关度排序

1.2 基础安装

环境准备

  • centos7.x+
  • jdk11+(可以不需要配置jdk,往下看即可)

官方下载地址:https://www.elastic.co/cn/downloads/elasticsearch

查看以前的版本

elasticsearch jdk版本,ElasticSearch,elasticsearch,搜索引擎,全文检索

选择对应的版本号和引擎,点击Download

elasticsearch jdk版本,ElasticSearch,elasticsearch,搜索引擎,全文检索

安装Linux版本的引擎包

elasticsearch jdk版本,ElasticSearch,elasticsearch,搜索引擎,全文检索

下载好后,使用 xftp将压缩包上传到Linux目录下

elasticsearch jdk版本,ElasticSearch,elasticsearch,搜索引擎,全文检索

将压缩包进行解压

tar -zxvf elasticsearch-7.14.0-linux-x86_64.tar.gz 

elasticsearch jdk版本,ElasticSearch,elasticsearch,搜索引擎,全文检索

elasticsearch jdk版本,ElasticSearch,elasticsearch,搜索引擎,全文检索

elasticsearch jdk版本,ElasticSearch,elasticsearch,搜索引擎,全文检索

查看elasticsearch自带的java版本

elasticsearch jdk版本,ElasticSearch,elasticsearch,搜索引擎,全文检索

解决自带jdk版本过低问题

elasticsearch jdk版本,ElasticSearch,elasticsearch,搜索引擎,全文检索

- 这个错误是系统jdk版本与es要求jdk版本不一致,es默认需要jdk11以上的版本,当前系统使用jdk8,需要从新安装jdk11才行
- 解决方案
 方案一: 安装jdk11+,并配置环境变量
 方案二: ES包中目录就是es需要的jdk,只需要将这个目录配置到ES_JAVA_HOME环境变量即可

这里我们使用方案二解决

# 配置环境变量,在/etc/profile目录文件下,文件底部添加如下
vim /etc/profile

# elasticsearch自带jdk的路径
ES_JAVA_HOME=/usr/local/elasticsearch/elasticsearch-7.14.0/jdk
export ES_JAVA_HOME
# 重新加载环境
source /etc/profile

注意es默认是不允许root用户去启动elasticsearch,所以需要给普通用户添加权限

elasticsearch jdk版本,ElasticSearch,elasticsearch,搜索引擎,全文检索

运行成功的标志

elasticsearch jdk版本,ElasticSearch,elasticsearch,搜索引擎,全文检索

1.3 访问测试

本地访问

使用外部端口访问,默认是在窗口运行,并且端口号是9200

# 访问端口
curl http://localhost:9200
# 添加参数-d后台启动
./elasticsearch -d

elasticsearch jdk版本,ElasticSearch,elasticsearch,搜索引擎,全文检索

远程访问

# 默认ES无法使用主机ip进行远程连接,需要开启远程连接权限
- 修改ES安装包中config/elasticsearch.yml配置文件
vim elasticsearch.yml

elasticsearch jdk版本,ElasticSearch,elasticsearch,搜索引擎,全文检索

修改完之后,重启elasticsearch报错

  • 最大虚拟内存太低
  • 默认是生产模式启动(集群的方式启动)

elasticsearch jdk版本,ElasticSearch,elasticsearch,搜索引擎,全文检索

解决问题一(用户的软硬限制)

### 找到文件 /etc/security/limits.conf,在文件的最后追加如下配置:
# 软硬问题(修改这里即可)
[totoro为用户名称,作用域]
totoro soft nofile 65536
totoro hard nofile 65536

# 最大线程数问题(无需修改,有报错添加即可)
totoro soft nofile 65535
totoro hard nofile 65537
vim /etc/security/limits.conf

elasticsearch jdk版本,ElasticSearch,elasticsearch,搜索引擎,全文检索

解决问题二(内存太低)

### 以root身份进行修改
# 在/etc/sysctl.conf目录文件下,修改以下参数
vm.max_map_count=262144	# centos7 系统
# 保存后,执行以下命令即可生效
sysctl -p

解决问题三(集群修改为单机)

### 编辑elasticsearch.yml文件
cluster.initial_master_nodes: ["node-1"]
# 执行以下命令即可生效
sysctl -p
vim elasticsearch.yml
# 通过:set nu 显示行数,位置定位在74行,如下图

elasticsearch jdk版本,ElasticSearch,elasticsearch,搜索引擎,全文检索

重新启动elasticsearch,并开启防火墙端口号,通过外部访问端口

firewall-cmd --zone=public --add-port=9200/tcp --permanent 
systemctl restart firewalld.service		# 重启防火墙命令

elasticsearch jdk版本,ElasticSearch,elasticsearch,搜索引擎,全文检索

elasticsearch jdk版本,ElasticSearch,elasticsearch,搜索引擎,全文检索

1.4 Docker安装

《docker安装教程》

# 运行docker命令
systemct start docker

### 1.拉取elasticsearch镜像
docker pull elasticsearch:7.14.0

### 2.运行ES
docker run -d -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.14.0
-d	后台运行
-p 	本地端口与docker容器中的端口映射
-e	指定单机模式环境运行

### 3.访问ES
http://192.168.159.100:9200

### 根据容器id查看日志输出
docker logs -f 1343ec1236e7

elasticsearch jdk版本,ElasticSearch,elasticsearch,搜索引擎,全文检索

elasticsearch jdk版本,ElasticSearch,elasticsearch,搜索引擎,全文检索

主机访问测试

http://ip:9200/

elasticsearch jdk版本,ElasticSearch,elasticsearch,搜索引擎,全文检索

下一篇文章《ElasticSearch - Kibana》文章来源地址https://www.toymoban.com/news/detail-719379.html

到了这里,关于ElasticSearch(一)【简介】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Elasticsearch全文搜索引擎

    Elasticsearch全文搜索引擎 Elasticsearch简介 windows平台下安装ES 学习ES的预备知识 ES索引操作 ES文档操作 ES高级查询 Golang操作ES起步 Golang操作ES索引 Golang操作ES文档 Golang ES高级查询 Gin集成ES

    2024年02月09日
    浏览(37)
  • Elasticsearch 搜索引擎

    一、创建索引库 *put* *http://localhost:9200/* *索引库名称* PUT http://localhost:9200/xc_course number_of_shards:设置分片的数量,在集群中通常设置多个分片,表示一个索引库将拆分成多片分别存储不同 的结点,提高了ES的处理能力和高可用性,入门程序使用单机环境,这里设置为1。 numb

    2024年02月01日
    浏览(35)
  • Elasticsearch:使用 Elasticsearch 和 BERT 构建搜索引擎 - TensorFlow

    在本文中,我们使用预训练的 BERT 模型和 Elasticsearch 来构建搜索引擎。 Elasticsearch 最近发布了带有向量场的文本相似性(text similarity search with vector field)搜索。 另一方面,你可以使用 BERT 将文本转换为固定长度的向量。 因此,一旦我们将文档通过 BERT 转换为向量并存储到

    2024年02月07日
    浏览(45)
  • 全文搜索引擎 Elasticsearch详解

    Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎,适用于包括文本、数字、地理空间、结构化和非结构化数据等在内的所有类型的数据。Elasticsearch 在 Apache Lucene 的基础上开发而成,由 Elasticsearch N.V.(即现在的 Elastic)于 2010 年首次发布。Elasticsearch 以其简单的

    2023年04月22日
    浏览(31)
  • 关于Elasticsearch全文搜索引擎

    我们可以把它简称为ES,但是搜索它的资料时(例如百度)还是使用Elasticsearch进行搜索更准确, 这个软件不再是SpringCloud提供的,它也不针对微服务环境的项目来开发 Elasticsearch和redismysql一样,不仅服务于java语言,其它语言也可以使用,它的功能也类似一个数据库,能高效的从

    2024年02月05日
    浏览(45)
  • Elasticsearch:什么是搜索引擎?

    搜索引擎是一种软件程序或系统,旨在帮助用户查找存储在互联网或特定数据库中的信息。 搜索引擎的工作原理是对各种来源的内容进行索引和编目,然后根据用户的搜索查询向用户提供相关结果列表。 搜索引擎对于希望快速有效地查找特定信息的用户来说是有用的工具。

    2024年02月21日
    浏览(34)
  • Elasticsearch (ES) 搜索引擎: 搜索功能:搜索分页、搜索匹配、全文搜索、搜索建议、字段排序

    原文链接:https://xiets.blog.csdn.net/article/details/132348920 版权声明:原创文章禁止转载 专栏目录:Elasticsearch 专栏(总目录) ES 搜索 API 官网文档:Search APIs 先创建一个索引,并写入一些文档用于搜索示例: 写入一些文档示例: 官网API:The _source option 搜索结果中的文档数据封装

    2024年02月08日
    浏览(45)
  • 【分布式搜索引擎elasticsearch】

    什么是elasticsearch? 一个开源的分布式搜索引擎,可以用来实现搜索、日志统计、分析、系统监控等功能 什么是elastic stack(ELK)? 是以elasticsearch为核心的技术栈,包括beats、Logstash、kibana、elasticsearch elasticsearch结合kibana、Logstash、Beats,也就是elastic stack(ELK)。被广泛应用在

    2024年02月10日
    浏览(39)
  • 搜索引擎Elasticsearch基础与实践

    将文档中的内容分词,然后形成词条。记录每条词条与数据的唯一表示如id的对应关系,形成的产物就是倒排索引,如下图: 这里的索引库相当于mysql中的database。一个文档(document)是一个可被索引的基础信息单元。 查询逻辑:根据词条去匹配查询,可以对搜索先分词

    2024年02月04日
    浏览(36)
  • SpringBoot 使用 Elasticsearch 搜索引擎

    作者:禅与计算机程序设计艺术 Spring Boot 是由 Pivotal 团队提供的一套用于开发基于 Spring 框架的应用的工具包。其主要目标是通过提供简单易用的starter包来简化开发流程。Spring Boot 极大的地方在于其依赖自动配置,可以很好的满足开发人员的开发需求。Spring Boot 提供了数据访

    2024年02月09日
    浏览(36)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包