
elasticsearch
我才是真的封不觉
某外企高级开发,菜鸟一个,希望在博客记录自己技术的成长,目标是成为一个好脾气的技术大牛。
b站账号 觉哥学java
展开
-
day117-商城业务-检索服务-SearchRequest构建-检索+排序、分页、高亮+聚合&测试
1.DSL语句概览与分析此篇我要做的就是完成DSL代码层面的实现,大致的结构如下,详细的DSL语句上篇已经贴出来了包含计算分数的must查询与不计算的filter外面被bool然后最外面被query对象包着然后是排序,然后是分页,然后是高亮,最后是聚合分析2.上代码...原创 2021-04-02 07:21:46 · 772 阅读 · 0 评论 -
day116-商城业务-检索服务-检索DSL测试-聚合部分
1.修改映射中的内容老的映射为如下,可以看到许多字段的index及doc_values都为false,那么这些字段将无法用于检索与内容的显示{ "product" : { "mappings" : { "properties" : { "attrs" : { "type" : "nested", "properties" : { "attrId" : { "t...原创 2021-04-01 21:10:25 · 216 阅读 · 0 评论 -
day115-商城业务-检索服务-检索DSL测试-查询部分
1.DSL回顾从上次敲DSL已经过了两三个月了,这次再来试试如下是查询的啥?查询的是标题包含华为没有库存,商品品牌id为6或8的商品知识点:组合查询使用bool,match分词后收索,term使用一整个关键词去搜索不进行分词,filter不会去计算任何分值,也不会关心返回的排序问题,因此比must啥的效率会高一点GET product/_search{ "query": { "bool": { "must": [ { "match": {原创 2021-04-01 01:34:52 · 230 阅读 · 0 评论 -
day80-商城业务-商品上架--构造基本数据+构造sku检索属性+远程查询库存+远程上架接口+抽取响应结果
此篇文章算是几篇整合为一篇了核心代码如下,大致逻辑页面点击SPU上的上架,根据spu查出其下sku以及相关规格属性等等,把各信息封装到skuEsModels中,然后调用第二部分代码进行上架,也就是保存到ES中,方便后面检索,保存完之后,改库存+改状态中间一些查库存更新库存的接口没贴出来 @Override @Transactional public void spuUp(Long spuId) { List<SkuInfoEntity>原创 2021-01-11 17:34:28 · 303 阅读 · 0 评论 -
day79-商城业务-商品上架-nested数据类型场景
当数据类型为数组时,数据会被扁平化处理,此时需把数据类似定义为nested所以我们这把属性集合的类型定义为nested原创 2020-12-27 23:11:30 · 182 阅读 · 0 评论 -
day78-商城业务-商品上架-sku在es中存储模型分析
1.会在日志与商品全文检索中使用到es,日志部分后面再说下面会说商品的全文检索2.如下全文检索将会用es而不是mysql,为什么呢1.mysql全文检索没有es强大2.es中数据保存在内存中,性能会比mysql优很多,当内存不够的时候咋办呢,分片,支持分布式,容量无限,但是设计的时候还是尽量要节省,因为内存产品比硬盘要贵很多3.存储模型的分析与确定将数据从mysql保存到es称为上架上架的商品才可以在网站上被展示与检索以下是一个我们检索大致需要的属性的列举,第一...原创 2020-12-27 23:00:49 · 510 阅读 · 1 评论 -
day77-全文检索-ElasticSearch-整合-测试复杂检索
1.本文主要参考链接https://www.elastic.co/guide/en/elasticsearch/client/java-rest/current/java-rest-high-search.html2.代码 @Test public void searchData() throws IOException {// SearchRequest searchRequest = new SearchRequest();// search原创 2020-12-24 10:00:09 · 451 阅读 · 0 评论 -
day76-全文检索-ElasticSearch-整合-测试保存
以下内容都是参考此链接https://www.elastic.co/guide/en/elasticsearch/client/java-rest/current/java-rest-high-create-index.html1.ElasticConfiguration类中添加如下配置 private static final RequestOptions COMMON_OPTIONS; static { RequestOptions.Builder builder原创 2020-12-21 17:24:27 · 172 阅读 · 0 评论 -
day75-ElasticSearch-整合-SpringBoot整合high-level-client
1.API选择 - high-level-clienthigh-level-client是对low-level-client进行了封装就如mybatis与jdbc的关系2.创建search模块使用spring initializer创建maven模块因为默认创建出来后父版本会是最新的版本将父版本改为之前其他模块版本一致看到父版本的依赖是6.8.6版本,复制过来并改为7.4.2版本3.引入common依赖添加注册服务的相关配置...原创 2020-12-21 15:32:35 · 350 阅读 · 0 评论 -
day74-ElasticSearch-分词- 自定义扩展词库
1.为了nginx容器配置,执行如下代码,若没有nginx容器会从远程拉取docker run -p 80:80 --name nginx \-v /mydata/nginx/html:/usr/share/nginx/html \-v /mydata/nginx/logs:/var/log/nginx \-v /mydata/nginx/conf/:/etc//nginx \-d nginx:1.10 POST _analyze2.如下内存不太够,调大点virtualbo..原创 2020-12-21 03:00:52 · 448 阅读 · 0 评论 -
day73-ElasticSearch-分词-分词&安装ik分词
1.分词器想要更深入理解可以看看http://3dobe.com/archives/44/2.演示从下面三图可以看出,该分词器对中文不太友好,官网上几种分词器都是针对中文的,这个时候我们需要从github上去下载ik分词器3.安装IK分词器前,先做如下操作,方便文件的传输4.安装IK分词器下载链接https://github.com/medcl/elasticsearch-analysis-ik//releases/tag/v7.4.2由于我们做了文件的挂载.原创 2020-12-20 01:22:32 · 224 阅读 · 2 评论 -
day72 -全文检索-ElasticSearch-进阶- 映射的查询,创建与修改
前言7已经把类型概念作为过期内容,8将彻底废弃,以后一个索引就一个类型,原因如下1.查询GET /索引名/_mapping2.新增3.修改起始不存在修改,因为字段已经绑定上数据,修改了映射类型算啥?所以只能创建新的索引,然后做数据的迁移(1)新索引的创建类似如下,其中index属性置为false时,该字段将不能索引文档(2)数据的迁移...原创 2020-12-16 23:35:37 · 169 阅读 · 0 评论 -
谷粒商城day71 -全文检索-ElasticSearch-进阶-aggregations聚合分析
链接https://www.elastic.co/guide/en/elasticsearch/reference/7.10/search-aggregations.html现在我带大家来入门学习如下我先查出address 模糊匹配mill的数据,类似于sql中的like第一个聚合现在我发现查出四条数据,我还想看看他们的年龄分布,这个时候需要使用aggs然后加入一个聚合对象,然后里面是聚合类型是terms用来查看分布最里层声明是哪个属性可以看到右侧的结果,...原创 2020-12-14 14:00:41 · 266 阅读 · 0 评论 -
谷粒商城day70-全文检索-ElasticSearch-进阶-两种查询方式与QSDL入门
关于elasticsearch的安装与基本的增删改查已经在前面有所讲解,此篇以几个常用例子带大家入门ES的基本检索方式第一种相当于get请求,在请求后面拼各种参数不常用,这里不多说第二种相当于post请求,有个请求体https://www.elastic.co/guide/en/elasticsearch/reference/current/getting-started-search.html比如以某个字段升序查全部数据如果不指定分页具体参数时,是默认...原创 2020-12-13 22:54:08 · 393 阅读 · 0 评论 -
谷粒商城day69 -全文检索-bulk批量操作导入样本测试数据
1._bulk语法如下分两部分 上面为索引,下面为数据2.测试与导入测试数据测试测试数据链接如下https://github.com/elastic/elasticsearch/blob/master/docs/src/test/resources/accounts.json导入测试数据,用以后面的学习可以看到在bank文档下有一千条数据...原创 2020-12-12 14:25:19 · 830 阅读 · 2 评论 -
谷粒商城day68 -全文检索-ElasticSearch基本增删改查
1._cat2.put & post 新增与修改数据put请求:必须带ID ID不存在为新增 存在则为修改post请求 可带ID可不带 新增:不带ID或者ID不存在 修改 :带ID且ID已存在带 _update的话数据必须用doc如:_update会在更新的时候比较原数据,若数据没有发生改变则取消更新3.get查询数据&乐观锁字段需要先把这俩字段查询出来,然后并发修改时携带若发生变化则取消修改,重新查了再修改...原创 2020-12-12 13:18:52 · 237 阅读 · 0 评论 -
谷粒商城day67 -全文检索-ElasticSearch-Docker安装ES与Kibana以及设置自动启动
其实步骤与之前安装mysql与redis大同小异,安装,映射端口及文件夹等具体我就不浪费时间贴我的指令了,看这篇https://blog.csdn.net/Q010_/article/details/107445061记得把多余单引号去掉就好原创 2020-12-11 21:54:08 · 765 阅读 · 1 评论 -
谷粒商城day80 -我对elasticsearch的初印象
详细介绍我是看的这篇博客https://www.jianshu.com/p/60b242cbd8b4目前还没使用过,收索一些资料知道他有如下特点1.可用于大数据量(PB级)的查询2.查询方式是啥倒排索引查询,就是分词然后查出来后有个相关度,然后根据相关度的大小进行排序,典型的用空间换时间3.底层是lucene,封装了RESTFUL API方便使用,入门简单4.跟数据库类似其实ES功能就像一个关系型数据库,在这个数据库我们可以往里面添加数据,查询数据。ES中的索引非传统索引的含原创 2020-10-14 11:21:31 · 202 阅读 · 0 评论