ElasticSearch01_下载安装和配置

本文详细介绍了Elasticsearch的安装与配置过程,包括其依赖的Lucene信息检索工具包,以及如何通过简单的RESTful API实现分布式全文搜索。此外,还探讨了Elasticsearch与关系型数据库的对比,分词器插件的使用,如IK分词器,并演示了如何通过Kibana进行操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


Lucene 是一套信息检索工具包,包含索引结构、读写索引的工具、排序和搜索工具类

ElasticSearch 基于 Lucene,做了一些封装和增强

ES是分布式全文搜索引擎,目的是通过简单的 RESTful API 来隐藏 Lucene 的复杂性


ElasticSearch的安装

官网下载,解压即用:https://www.elastic.co/

https://www.elastic.co/guide/en/elasticsearch/reference/7.17/install-elasticsearch.html
在这里插入图片描述
JVM配置文件:

如果电脑内存有限,建议修改堆内存初始化值和最大值为512m,默认为1g

# Xms represents the initial size of total heap space
# Xmx represents the maximum size of total heap space

-Xms512m
-Xmx512m

ES配置文件:

配置允许跨域访问:

http.cors.enabled: true
http.cors.allow-origin: "*"

启动ES

访问9200端口:

{
  "name" : "BLU",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "NNESyFEsSH2kvElzRN6t_A",
  "version" : {
    "number" : "7.7.1",
    "build_flavor" : "default",
    "build_type" : "zip",
    "build_hash" : "ad56dce891c901a492bb1ee393f12dfff473a423",
    "build_date" : "2020-05-28T16:30:01.040088Z",
    "build_snapshot" : false,
    "lucene_version" : "8.5.1",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

安装可视化界面 es head(依赖nodejs)

下载地址:https://github.com/mobz/elasticsearch-head

启动:

cnpm install
npm run start

访问默认端口9100:

如果之前ES的允许跨域没有配置,则elasticsearch会显示未连接:

在这里插入图片描述


安装Kibana

官网下载:https://www.elastic.co/cn/downloads/kibana

解压并启动,访问默认端口5601:

在这里插入图片描述
Kibana汉化配置:

i18n.locale: "zh-CN"

ElasticSearch与关系型数据库的对比:

Relational DBElasticSearch
数据库 Database索引 indices
表 Tabletypes
行 rowdocuments
字段 columnfields

一个集群至少有一个节点,一个节点就是一个elasticsearch进程,节点可以包含多个索引,每个索引默认分为五个主分片,每个主分片有一个副本,它们分布在不同节点上,以防止某个节点挂掉导致数据丢失。
在这里插入图片描述默认分片数为5,默认副本数为1
在这里插入图片描述索引分为5个分片,每个分片1个副本,分布在不同节点中
实际上,一个分片就是一个 Lucene索引,一个包含 倒排索引 的文件目录,倒排索引结构使ES在不扫描全部文档的情况下就可知道哪些文档中包含特定的关键字。

倒排索引示例

现有两个文档:

文档1:Study every day, good good up to forever
文档2:To forever, study every day, good good up 

词条统计:

termdoc1doc2
StudyYX
ToXX
everyYY
foreverYY
dayYY
studyXY
goodYY
everyYY
toYX
upYY

尝试搜索:to forever

termdoc1doc2
toYX
foreverYY
文档1的匹配度更高

IK分词器插件(中文分词器)

下载:https://github.com/medcl/elasticsearch-analysis-ik/releases

注:IK版本必须和ES版本对应!

在es的plugin目录下新建文件夹 ik,将包解压至ik文件夹内即可

在这里插入图片描述
IK提供了两种算法:ik_smart 最少切分ik_max_word 最细粒度划分

使用Kibana测试IK分词器:

ik_smart 最少切分:

GET _analyze
{
  "analyzer": "ik_smart",
  "text": "中国内地男歌手许嵩"
} 


ik_max_word 最细粒度划分:

GET _analyze
{
  "analyzer": "ik_max_word",
  "text": "中国内地男歌手许嵩"
}

问题:"许嵩"被拆开为了许和嵩两个词

给IK分词器添加自定义词:

  1. ik 目录下的 config 文件夹中创建 vae.dic 字典文件
许嵩
  1. 在 IKAnalyzer.cfg.xml 配置文件中设置引用自定义的字典文件
<!--用户可以在这里配置自己的扩展字典 -->
<entry key="ext_dict">vae.dic</entry>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值