ElasticSearch

分布式搜索技术

倒排索引

ElasticSearch采用倒排索引

1、文档(document): 每条数据就是一个文档

2、词条(term) : 文档按照语义分成的词语。不可重复

MySQL擅长事务类型操作,可以确保数据的安全和一致性。

ElasticSearch擅长海量数据的搜索、分析、计算。

单机安装

docker network create es-net 创建网络

安装es

docker run -d \
--name es \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
-e "discovery.type=single-node" \
-v es-data:/usr/share/elasticsearch/data \
-v es-plugins:/usr/share/elasticsearch/plugins \
--privileged \
--network es-net \
-p 9200:9200 \
-p 9300:9300 \
elasticsearch:7.12.1

 

安装kibana

docker run -d --name kibana -e ELASTICSEARCH_HOSTS=http://es:9200 --network=es-net -p 5601:5601 kibana:7.12.1   安装kibana,版本必须和es对应

 

分词

es中对中文的分词支持比较差。IK分词器。

github下载zip压缩包版本7.12.1,解压文件夹上传到es挂载的插件目录。

docker volume inspect es-plugins   查看es插件数据卷挂载路径

 

两种分词器:ik_smart 最少切分  ik_max_word 最细切分。

 

 

分词器扩展

 

索引库操作(对应MySQL表操作)

mapping映射属性 对文档的约束

文档在es中是json格式。

 

es中没有数组的,但是可以允许一个字段有多个值。如下的score应该是double、float类型。

analyzer和text结合使用,只有text需要分词。

创建索引库(MySQL建表)

 

查、删、改索引库

修改索引库会导致倒排索引失效,禁止去修改索引库。但是可以添加字段

 文档操作

增、查、删 (MySQL的CRUD)

 修改文档

 方式一把新增的post改成了put

DSL查询分类与基本语法

DSL官方文档

查询

精确查询是Term-level queries

查询城市在上海,品牌为皇冠假日或者华美达任意一个,价格不小于等于500,用户评价分大于45分。

 排序

分页

 

 高亮

 

数据聚合

数据聚合

 

 

 

 

自动补全

数据同步

集群

 

posted @ 2024-04-18 16:00  长寿奉孝  阅读(1)  评论(0编辑  收藏  举报