ElasticSearch经典入门(一) 全文索引&ES概述&ES安装&Kibana安装

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 全文索引&ES概述&ES安装&Kibana安装

前言

为什么要写这个系列的文章呢,基于两个原因,一是在为企业招人的时候发现很多是工作多年的求职者都还没有接触过全文检索引擎,二是应朋友请求希望我写一写ElasticSearch(简称ES)的技术文章,该系列文章将分为如下几个部分:1.ES原理与安装;2.ES的基础用法 ;3.Java代码进行ES实战 ;4.ES的面试题讲解,喜欢的话请给个好评。

全文检索概述

我们在网络上的大部分搜索服务都用到了全文检索技术,全文检索的应用场景随处可见,招聘网站的职位搜索,电商网站的商品搜索,百度搜搜等等,这种业务场景往往意味需要对海量数据进行高效搜索。

那什么是全文检索呢?我们可以简单的理解为是从文本数据的搜索,比如:从百万千万级数据中搜索商品标题包含“鼠标”的商品,这一定是需要用到全文搜索,如果我们使用like来进行模糊匹配那简直是一场灾难,性能是极其的差。

全文搜索引擎可以做到传统关系型数据库无法做到的功能如:

  • 搜索效率高,是like无法比拟的
  • 相关度最高的排在最前面
  • 关键词的高亮

需要注意的是:全文检索只处理文本,不处理语义。 比如在输入框中输入“中国的首都在哪里”,搜索引擎不会以对话的形式告诉你“在北京”,而仅仅是列出包含了搜索关键字的网页。

常见的全文检索引擎有

  • 全文搜索工具包-Lucene(核心)
  • 全文搜索服务器 ,Elastic Search(ES) 基于Lucene封装,上手快
  • Solr基于lucene封装,上手较为麻烦

ElasticSearch认识

ElasticSearch是一个非常热门使用广泛的分布式的全文搜索引擎,它基于Apache Lucene进行封装,解决了Lucene使用复杂,不支持分布式/集群且只支持Java语言等问题。ES也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的 RESTful API来隐Lucene的复杂性,从而让全文搜索变得简单。

总的来说ElasticSearch简化了全文检索lucene的使用,同时增加了分布式的特性,使得构建大规模分布式全文检索变得非常容易。它具备如下特点

  • 分布式的实时文件存储,分布式全文搜索引擎,每个字段都被索引并可被搜索
  • 本身支持集群扩展,可以扩展到上百台服务器
  • 处理PB级结构化或非结构化数据
  • 简单的 RESTful API通信方式
  • 支持各种语言的客户端
  • 基于Lucene封装,使操作简单

ElasticSearch的安装

ES的安装比较简单,只需要官方下载ES的运行包,然后启动ES服务即可。ES的使用主要是通过能够发起HTTP请求的终端来接入,比如Poster插件、CURL、kibana等。ES服务只依赖于JDK,推荐使用JDK1.8+。本课程以在window环境下,ES 6.8.6版本为例,下载对应的ZIP文件

7.x以上的版本变化挺大的,企业用的比较多的还是7.x以下的版本,我这里以6.8.6为例,下载地址:https://www.elastic.co/cn/downloads/past-releases/elasticsearch-6-8-6
image.png

解压即可,目录如下
image.png

  • bin 是ES的执行命令
  • config是配置文件目录,里面有一个 elasticsearch.yml是es配置文件,暂时不需要动它
  • data是数据存储目录
  • lib 是所依赖的jar包
  • plugins是插件安装目录,比如分词器就在该目录安装

ES启动占用的内存比较大,可以通过修改config/jvm.options 文件来修改内存,该文件在es的安装目录中
image.png

比如修改为:-Xms512m -Xmx512m

双击安装目录 bin/elasticsearch.bat即可启动
image.png

使用浏览器访问:http://localhost:9200
image.png

看到上图信息,恭喜你,你的ES集群已经启动并且正常运行。

Kibana可视化工具安装

操作ES的方式有很多:比如基于rest api 方式的可以使用Postman 这一类的工具;在项目中使用ES当然是需要Java客户端来操作ES,官方推荐使用Kibana可视化工具,下载地址如下:https://www.elastic.co/cn/downloads/past-releases/kibana-6-8-6
image.png

下载好Kibana后解压即可,目录如下
image.png

默认情况下,Kibana会链接本地的默认ES http://localhost:9200 ,如果需要修改链接的ES服务器,通过修改安装目录下 config/kibana.yml 将配置项 #elasticsearch.hosts: ["http://localhost:9200"] 取消注释即可修改连接的ES服务器地址。

双击/bin/kibana.bat 即可启动Kibana ,它会自己去连接已经启动的ES
image.png

启动成功后访问 http://localhost:5601,功能很多我们暂时用不到,我们找到 Dev Tools 菜单,界面如下
image.png

进去之后界面效果如下
image.png

左边我们使用rest 请求进行操作,右边是结果显示面板。

相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
目录
相关文章
|
12天前
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
29 5
|
19天前
|
存储 监控 安全
|
1月前
|
自然语言处理 搜索推荐 关系型数据库
elasticsearch学习六:学习 全文搜索引擎 elasticsearch的语法,使用kibana进行模拟测试(持续更新学习)
这篇文章是关于Elasticsearch全文搜索引擎的学习指南,涵盖了基本概念、命令风格、索引操作、分词器使用,以及数据的增加、修改、删除和查询等操作。
22 0
elasticsearch学习六:学习 全文搜索引擎 elasticsearch的语法,使用kibana进行模拟测试(持续更新学习)
|
1月前
|
存储 JSON Java
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。
这篇文章是关于Elasticsearch的学习指南,包括了解Elasticsearch、版本对应、安装运行Elasticsearch和Kibana、安装head插件和elasticsearch-ik分词器的步骤。
126 0
elasticsearch学习一:了解 ES,版本之间的对应。安装elasticsearch,kibana,head插件、elasticsearch-ik分词器。
|
1月前
|
运维 监控 数据可视化
大数据-171 Elasticsearch ES-Head 与 Kibana 配置 使用 测试
大数据-171 Elasticsearch ES-Head 与 Kibana 配置 使用 测试
65 1
|
1月前
|
自然语言处理 搜索推荐 Java
SpringBoot 搜索引擎 海量数据 Elasticsearch-7 es上手指南 毫秒级查询 包括 版本选型、操作内容、结果截图(一)
SpringBoot 搜索引擎 海量数据 Elasticsearch-7 es上手指南 毫秒级查询 包括 版本选型、操作内容、结果截图
50 0
|
2月前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
3月前
|
数据可视化 Docker 容器
一文教会你如何通过Docker安装elasticsearch和kibana 【详细过程+图解】
这篇文章提供了通过Docker安装Elasticsearch和Kibana的详细过程和图解,包括下载镜像、创建和启动容器、处理可能遇到的启动失败情况(如权限不足和配置文件错误)、测试Elasticsearch和Kibana的连接,以及解决空间不足的问题。文章还特别指出了配置文件中空格的重要性以及环境变量中字母大小写的问题。
一文教会你如何通过Docker安装elasticsearch和kibana 【详细过程+图解】
|
3月前
|
JSON 自然语言处理 数据库
Elasticsearch从入门到项目部署 安装 分词器 索引库操作
这篇文章详细介绍了Elasticsearch的基本概念、倒排索引原理、安装部署、IK分词器的使用,以及如何在Elasticsearch中进行索引库的CRUD操作,旨在帮助读者从入门到项目部署全面掌握Elasticsearch的使用。
|
3月前
|
Ubuntu Oracle Java
如何在 Ubuntu VPS 上安装 Elasticsearch
如何在 Ubuntu VPS 上安装 Elasticsearch
42 0
下一篇
无影云桌面