目录
初识ES
认识和安装
安装es和Kibana
还是和之前差不多的步骤
还是选择从本地上传镜像到虚拟机root目录,再加载好
docker load -i es.tar
docker load -i kibana.tar
加载好再移除掉tar包(比较大,有点占空间)
rm -rf *.tar
run
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 hmall \
-p 9200:9200 \
-p 9300:9300 \
elasticsearch:7.12.1
docker run -d \
--name kibana \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
--network hmall \
-p 5601:5601 \
kibana:7.12.1
倒排索引
倒排索引
IK分词器
在线安装(对网速有要求)
运行一个命令即可:
docker exec -it es ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.12.1/elasticsearch-analysis-ik-7.12.1.zip
然后重启es容器:
docker restart es
离线安装
先查看有哪些数据卷:
docker volume ls
发现es容器里面的插件目录挂载好了(安装时通过数据卷挂载的)
查看一下挂载到虚拟机的哪个目录了:
docker volume inspect es-plugins
进入这个目录:
cd /var/lib/docker/volumes/es-plugins/_data
创建一个ik目录,把本地的压缩包
上传到虚拟机的ik目录里,然后再解压,解压后再把压缩包删除了。
mkdir ik
unzip ***.zip
rm ****.zip
重新启动es:
docker restart es
测试
拓展词条
总结
基本概念
索引库操作
Mapper映射属性
这里是否创建索引取决于这个字段参不参与搜索或者排序。
注:
这个举例的es文档的score字段,如果为其创建了index索引,用于去排序,
排序规则:由于score是数组,里面有多个分数,那么去和其它文档根据这个字段排序的话,es会默认选一个分数去参与排序。
如果是升序排:拿最小的分数去比较(升序是小的在大的前面)
如果是降序排:拿最大的分数去比较(降序是大的在小的前面)
索引库的CRUD
以上这些都是类似sql的DDL操作,不是日常的curd。
文档操作
文档CRUD
批量处理
JavaRestClient
客户端初始化
商品Mapping映射
这里重点是根据业务去设计索引库字段以及其mapper映射属性。
索引库操作
文档操作
新增文档的数据是从数据库商品表里取出来的。
批量处理
DSL查询
快速入门
叶子查询
全文检索查询:
精确查询:
举例:
总结
复合查询
第一类:布尔查询
排序和分页
排序
举例:
分页
深度分页问题
总结:
大多数情况下,我们采用普通分页就可以了。查看百度、京东等网站,会发现其分页都有限制。例如百度最多支持77页,每页不足20条。京东最多100页,每页最多60条。
因此,一般我们采用限制分页深度的方式即可,无需实现深度分页。
而elasticsearch会禁止from + size
超过10000的请求。
高亮显示
完整语法
JavaRestClient
多看在线文档!!!
快速入门
构建查询条件
叶子查询
全文检索查询条件
精确查询条件
复合查询
布尔查询
举例
排序和分页
高亮显示
聚合
桶聚合
有限定范围的聚合