一.全文检索ElasticSearch经典入门-全文索引&ES概述&ES安装&Kibana安装

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 一.全文检索ElasticSearch经典入门-全文索引&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
在这里插入图片描述
解压即可,目录如下
在这里插入图片描述

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

ES启动占用的内存比较大,可以通过修改config/jvm.options 文件来修改内存,该文件在es的安装目录中
在这里插入图片描述
比如修改为:-Xms512m -Xmx512m

双击安装目录 bin/elasticsearch.bat即可启动
在这里插入图片描述
使用浏览器访问:http://localhost:9200
在这里插入图片描述
看到上图信息,恭喜你,你的ES集群已经启动并且正常运行。

Kibana可视化工具安装

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

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

双击/bin/kibana.bat 即可启动Kibana ,它会自己去连接已经启动的ES
在这里插入图片描述

启动成功后访问 http://localhost:5601,功能很多我们暂时用不到,我们找到 Dev Tools 菜单,界面如下
在这里插入图片描述

进去之后界面效果如下
在这里插入图片描述

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

相关实践学习
利用Elasticsearch实现地理位置查询
本实验将分别介绍如何使用Elasticsearch7.10版本进行全文检索、多语言检索和地理位置查询三个Elasticsearch基础检索子场景的实现。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
6天前
|
运维 监控 Java
探索Elasticsearch在Java环境下的全文检索应用实践
【6月更文挑战第30天】在大数据背景下,Elasticsearch作为分布式搜索分析引擎,因其扩展性和易用性备受青睐。本文指导在Java环境中集成Elasticsearch,涉及安装配置、使用RestHighLevelClient连接、索引与文档操作,如创建索引、插入文档及全文检索查询。此外,还讨论了高级查询、性能优化和故障排查,帮助开发者高效处理非结构化数据全文检索。
21 0
|
4天前
|
Linux Python
【Elasticsearch】linux使用supervisor常驻Elasticsearch,centos6.10安装 supervisor
【Elasticsearch】linux使用supervisor常驻Elasticsearch,centos6.10安装 supervisor
10 3
|
8天前
|
自然语言处理 搜索推荐
在Elasticsearch 7.9.2中安装IK分词器并进行自定义词典配置
在Elasticsearch 7.9.2中安装IK分词器并进行自定义词典配置
11 1
|
23天前
|
网络协议 Java
elasticsearch7.1 安装启动报错
elasticsearch7.1 安装启动报错
16 1
|
4天前
|
存储 关系型数据库 MySQL
【Elasticsearch】在es中实现mysql中的FIND_IN_SET查询条件
【Elasticsearch】在es中实现mysql中的FIND_IN_SET查询条件
7 0
|
5天前
|
运维 监控 Java
在大数据场景下,Elasticsearch作为分布式搜索与分析引擎,因其扩展性和易用性成为全文检索首选。
【7月更文挑战第1天】在大数据场景下,Elasticsearch作为分布式搜索与分析引擎,因其扩展性和易用性成为全文检索首选。本文讲解如何在Java中集成Elasticsearch,包括安装配置、使用RestHighLevelClient连接、创建索引和文档操作,以及全文检索查询。此外,还涉及高级查询、性能优化和故障排查,帮助开发者高效处理非结构化数据。
16 0
|
8天前
|
Windows
Windows安装Elasticsearch 7.9.2
Windows安装Elasticsearch 7.9.2
7 0
|
9天前
|
Java API 索引
必知的技术知识:Elasticsearch和Kibana安装
必知的技术知识:Elasticsearch和Kibana安装
|
10天前
|
存储 监控 搜索推荐
在生产环境中部署Elasticsearch:最佳实践和故障排除技巧——安装篇(一)
在生产环境中部署Elasticsearch:最佳实践和故障排除技巧——安装篇(一)
|
2月前
|
Java Maven 开发工具
【ElasticSearch 】IK 分词器安装
【ElasticSearch 】IK 分词器安装
54 1