微服务学习|elasticsearch:数据聚合、自动补全、数据同步

这篇具有很好参考价值的文章主要介绍了微服务学习|elasticsearch:数据聚合、自动补全、数据同步。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

数据聚合

聚合的分类

聚合 (aggregations)可以实现对文档数据的统计、分析、运算。聚合常见的有三类:

桶(Bucket)聚合:用来对文档做分组
TermAggregation:按照文档字段值分组
Date Histogram:按照日期阶梯分组,例如一周为一组,或者一月为一组

度量(Metric)聚合:用以计算一些值,比如: 最大值、最小值、平均值等Avg:求平均值Max:求最大值Min:求最小值Stats:同时求max、min、avg、sum等
管道(pipeline)聚合: 其它聚合的结果为基础做聚合

参与聚合的字段类型必须是:keyword、数值、日期、布尔

DSL实现Bucket聚合

现在,我们要统计所有数据中的酒店品牌有几种,此时可以根据酒店品牌的名称做聚合。类型为term类型,DSL示例

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

查询结果,在buckets中,返回了所有酒店品牌和该品牌酒店的数量

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

Bucket聚合-聚合结果排序

默认情况下,Bucket聚合会统计Bucket内的文档数量,记为_count,并且按照 count降序排序。我们可以修改结果排序方式

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

可以看到,查询出的聚合结果,品牌按照其酒店数量由少到多排列

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

Bucket聚合-限定聚合范围

默认情况下,Bucket聚合是对索引库的所有文档做聚合,我们可以限定要聚合的文档范围,只要添加query条件即可

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

价格在200以下的酒店品牌只有三家

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

DSL实现Metrics聚合

例如,我们要求获取每个品牌的用户评分的min、max、avg等值我们可以利用stats聚合

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

可以看到,对分数score增加过stats聚合后,聚合结果增加了每个品牌的分数的最小值、最大值等

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

RestAPI实现聚合

我们以品牌聚合为例,演示下Java的RestClient使用,先看请求组装

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

编写一个测试类

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

再看下聚合结果解析

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

在测试类中编写解析代码

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

多条件聚合

案例:在IUserService中定义方法,实现对品牌、城市、星级的聚合

需求:搜索页面的品牌、城市等信息不应该是在页面写死,而是通过聚合索引库中的酒店数据得来的

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

在IUserService中定义一个方法,实现对品牌、城市、星级的聚合,方法声明如下

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

实现类中编写具体的业务方法

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

将选中部分代码抽取出来成为一个单独的方法

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

然后发请求,解析结果

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

把解析结果这部分的代码抽取出来,因为后面要对品牌brandAgg、城市cityAgg、星级starAgg的聚合结果都解析一下,抽取方便调用,代码简化

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

抽取之后,对品牌brandAgg、城市cityAgg、星级starAgg的聚合结果都调用该方法解析出来,然后存到Map中,最终返回即可

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

编写测试类调用该服务

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

结果显示如下

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

带过滤条件的聚合

对接前端接口

前端页面会向服务端发起请求,查询品牌、城市、星级等字段的聚合结果:
可以看到请求参数与之前search时的RequestParam完全-致,这是在限定聚合时的文档范围。
例如:用户搜索“外滩”,价格在300~600,那聚合必须是在这个搜索条件基础上完成。
因此我们需要:
1.编写controller接口,接收该请求
2.修改IUserService#getFilters()方法,添加RequestParam参数
修改getFilters方法的业务,聚合时添加query条件

参数与查询时的参数一致(参考上一篇文章的最后案例)上一篇文章最后的案例1

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

业务接口定义方法

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

服务实现类中的方法增加对参数的封装,查询的限定,用的这个方法也和之前查询时的封装方法一样上一篇文章最后的案例1

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

什么都不限定,返回的聚合信息这么多

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

限定一个价格区间,发现返回的聚合信息变少了

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

自动补全

当用户在搜索框输入字符时,我们应该提示出与该字符有关的搜索项,如图

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

使用拼音分词

要实现根据字母做补全,就必须对文档按照拼音分词。在GitHub上恰好有elasticsearch的拼音分词插件。

安装方式与IK分词器一样,分三步:
1.解压
2.上传到虚拟机中,elasticsearch的plugin目录
3.重启elasticsearch
4.测试

1.解压

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

2.上传到虚拟机中,elasticsearch的plugin目录

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

3.重启elasticsearch

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

4.测试

对每个汉字分出单独的拼音词条,并且还有拼音简写

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

自定义分词器

elasticsearch中分词器 (analyzer) 的组成包含三部分:
character filters:在tokenizer之前对文本进行处理。例如删除字符、替换字符
tokenizer: 将文本按照一定的规则切成词条 (term)。例如keyword,就是不分词;还有ik_smart

tokenizer filter: 将tokenizer输出的词条做进一步处理。例如大小写转换、同义词处理、拼音处理等

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

我们可以在创建索引库时,通过settings来配置自定义的analyzer (分词器)

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

测试

创建索引库

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

可以看到完成了自定义的分词器设置

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

往索引库中新增2条文档,狮子和虱子,然后进行检索查询,shizi,发现查询结果两个文档都查询了出来

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

但是,当查的匹配信息是调入狮子笼咋办,狮子肯定和虱子没关系,但是因为该name字段的分词器的缘故,虱子也被匹配上了因为拼音一致

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

拼音分词器适合在创建倒排索引的时候使用,但不能在搜索的时候使用

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

因此字段在创建倒排索引时应该用my analyzer分词器;字段在搜索时应该使用ik smart分词器

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

在创建索引库时,用上述方法创建,然后再次查询,发现虱子没被匹配上了

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

completion suggester查询

elasticsearch提供了Completion Suggester查询来实现自动补全功能。这个查询会匹配以用户输入内容开头的词条并返回。为了提高补全查询的效率,对于文档中字段的类型有一些约束:
参与补全查询的字段必须是completion类型
字段的内容一般是用来补全的多个词条形成的数组。

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

查询语法如下

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

测试

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

案例:实现hotel索引库的自动补全、拼音搜索功能

实现思路如下:
1.修改hotel索引库结构,设置自定义拼音分词器
2.修改索引库的name、all字段,使用自定义分词器
3.索引库添加一个新字段suggestion,类型为completion类型,使用自定义的分词器

4.给HotelDoc类添加suggestion字段,内容包含brand、business
5.重新导入数据到hotel库

1.修改hotel索引库结构,设置自定义拼音分词器elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

2.修改索引库的name、all字段,使用自定义分词器

3.索引库添加一个新字段suggestion,类型为completion类型,使用自定义的分词器

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

4.给HotelDoc类添加suggestion字段,内容包含brand、business

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

再次运行之前的批量从数据库中将数据插入es中的方法

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

再次查询索引库,发现suggestion字段已经由品牌和商圈填充,是数组格式,但是有的商圈是两个,需要将这两个也分开

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

故修改hotelDoc类中有参构造器中的代码

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

重新运行该方法后,再次查询,发现该商圈信息也已经分开

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

然后用Completion Suggester查询语法来实现自动补全功能,查“sd”,查出了suggestion中含有“上地产业园”的文档

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

RestAPI实现自动补全

先看请求参数构造的API

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

编写测试类

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

再来看结果解析

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

增加测试类中的解析结果

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

案例:实现酒店搜索页面输入框的自动补全

查看前端页面,可以发现当我们在输入框键入时,前端会发起ajax请求

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

在服务端编写接口,接收该请求,返回补全结果的集合,类型为List<String>

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

服务层生成对应方法

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

业务层具体代码

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

try catch 一下

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

实现功能

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

数据同步

数据同步问题分析

elasticsearch中的酒店数据来自于mysql数据库,因此mysq[数据发生改变时,elasticsearch也必须跟着改变,这个就是elasticsearch与mysql之间的数据同步

在微服务中,负责酒店管理(操作mysql)的业务与负责酒店搜索(操作elasticsearch )的业务可能在两个不同的微服务上数据同步该如何实现呢?

方案一:同步调用

优点:实现简单,粗暴
缺点:业务耦合度高

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

方案二:异步通知

优点:低耦合,实现难度一般
缺点:依赖mq的可靠性

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

方案三:监听binlog

优点:完全解除服务间耦合
缺点:开启binlog增加数据库负担、实现复杂度高

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

案例:利用MQ实现mysql与elasticsearch数据同步

利用课前资料提供的hotel-admin项目作为酒店管理的微服务。当酒店数据发生增、删、改时,要求对elasticsearch中数据也要完成相同操作
步骤:
导入课前资料提供的hotel-admin项目,启动并测试酒店数据的CRUD
声明exchange、queue、RoutingKey
在hotel-admin中的增、删、改业务中完成消息发送
在hotel-demo中完成消息监听,并更新elasticsearch中数据
启动并测试数据同步功能

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

启动hotel-admin项目

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

在es的微服务hotel-demo中引入rabbitmq依赖

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

yaml配置文件配置mq相关配置

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

定义一个常量类,设置队列名字,交换机名字,包括key

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

创建一个配置类,声明交换机、队列,以及绑定关系

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

在hotel-admin项目中引入mq的依赖

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

在其项目的yaml文件中配置mq的配置

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

在对酒店信息进行crud操作的controller中引入对mq发消息的类rabbitTemplate

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

在新增酒店信息和更新酒店信息的方法中,插入和更新信息到数据库中后,要对队列发送一个消息,并且key是酒店插入的key,代表消息发送至插入酒店信息的队列中,将这个插入酒店的id传上去

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

在删除酒店信息的方法中,信息从数据库中删除后,要对队列发送一个消息,并且key是酒店删除的key,代表消息发送至删除酒店信息的队列中,将这个删除酒店的id传上去

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

在对es操作的hotel-demo项目中编写队列监听类,分别监听两个队列,并执行相关的业务操作

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

服务层增加这两个业务操作,在es中增加酒店信息方法和删除酒店信息方法

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

增加酒店信息具体的业务方法

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索

删除酒店具体的业务方法

elasticsearch 聚合每天,微服务,学习,elasticsearch,java,后端,搜索引擎,微服务,全文检索文章来源地址https://www.toymoban.com/news/detail-767179.html

到了这里,关于微服务学习|elasticsearch:数据聚合、自动补全、数据同步的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • elasticsearch(ES)分布式搜索引擎04——(数据聚合,自动补全,数据同步,ES集群)

    **聚合(aggregations)**可以让我们极其方便的实现对数据的统计、分析、运算。例如: 什么品牌的手机最受欢迎? 这些手机的平均价格、最高价格、最低价格? 这些手机每月的销售情况如何? 实现这些统计功能的比数据库的sql要方便的多,而且查询速度非常快,可以实现近

    2024年02月08日
    浏览(51)
  • 【ElasticSearch】深入探索 ElasticSearch 对数据的聚合、查询自动补全、与数据库间的同步问题以及使用 RabbitMQ 实现与数据库间的同步

    在本文中,我们将深入探讨 ElasticSearch 在数据处理中的关键功能,包括数据聚合、查询自动补全以及与数据库的同步问题。 首先,我们将聚焦于 ElasticSearch 强大的聚合功能,解释什么是聚合以及如何通过 DSL 语句和 RestClient 实现各种聚合操作。这一功能能够让我们更深入地了

    2024年02月08日
    浏览(57)
  • SpringCloud学习路线(12)——分布式搜索ElasticSeach数据聚合、自动补全、数据同步

    一、数据聚合 聚合(aggregations): 实现对文档数据的统计、分析、运算。 (一)聚合的常见种类 桶(Bucket)聚合: 用来做文档分组。 TermAggregation: 按照文档字段值分组 Date Histogram: 按照日期阶梯分组,例如一周一组,一月一组 度量(Metric)聚合: 用以计算一些值,比如

    2024年02月15日
    浏览(44)
  • ElasticSearch基础3——聚合、补全、集群。黑马旅游检索高亮+自定义分词器+自动补全+前后端消息同步

    导航: 【黑马Java笔记+踩坑汇总】JavaSE+JavaWeb+SSM+SpringBoot+瑞吉外卖+SpringCloud/SpringCloudAlibaba+黑马旅游+谷粒商城  黑马旅游源码:  GitHub: GitHub - vincewm/hotel: 黑马旅游项目 Gitee: hotel: 黑马旅游项目 目录 1.数据聚合 1.1.聚合的种类 1.2.DSL实现聚合 1.2.1.Bucket聚合语法 1.2.2.聚合结果

    2023年04月16日
    浏览(83)
  • Elasticsearch --- 数据聚合、自动补全

    聚合(aggregations) 可以让我们极其方便的实现对数据的统计、分析、运算。例如: 什么品牌的手机最受欢迎? 这些手机的平均价格、最高价格、最低价格? 这些手机每月的销售情况如何? 实现这些统计功能的比数据库的sql要方便的多,而且查询速度非常快,可以实现近实

    2024年02月04日
    浏览(46)
  • SpringCloud(十)——ElasticSearch简单了解(三)数据聚合和自动补全

    聚合 (aggregations)可以实现对文档数据的统计、分析、运算。 聚合常见的有三类: 桶(Bucket)聚合 :用来对文档做分组 TermAggregation:按照文档字段值分组 Date Histogram:按照日期阶梯分组,例如一周为一组,或者一月为一组 度量(Metric)聚合 :用以计算一些值,比如:最大

    2024年02月09日
    浏览(41)
  • Elasticsearch聚合、自动补全 | 黑马旅游

    聚合(aggregations) 可以实现对文档数据的统计、分析、运算。 聚合常见有三类: 桶聚合 Bucket :对文档数据分组,并统计每组数量 TermAggregation:按照文档字段值分组(有点像mysql的group by) Date Histogram:按照日期阶梯分组,例如一周为一组,或者一月一组 度量聚合 Metric :对

    2024年02月01日
    浏览(45)
  • Elasticsearch实现检索词自动补全(检索词补全,自动纠错,拼音补全,繁简转换) 包含demo

    下面的请求定义了一个名为 “book” 的 Elasticsearch 索引,其中包含一个 具有 “text” 数据类型和 “standard” 分析器且名为 “title” 的字段。此字段用于处理书籍标题的文本数据。定义了名为 “suggest” 的 “completion” 子字段,用于支持实时搜索建议的自动补全功能。 增加测

    2024年02月07日
    浏览(38)
  • elasticsearch 拼音分词器 & 自动补全。

    2. 自动补全。 当用户在搜索框输入字符时,我们应该提示出与该字符有关的搜索项,如图。 这种根据用户输入的字母,提示完整词条的功能,就是自动补全了。 因为需要根据拼音字母来推断,因此要用到拼音分词功能。 2.1. 拼音分词器。 要实现根据字母做补全,就必须对文

    2024年02月06日
    浏览(51)
  • Elasticsearch 系列(四)- DSL实现自动补全查询

    本章将和大家分享如何通过 Elasticsearch 实现自动补全查询功能。 1、自动补全需求说明 当用户在搜索框输入字符时,我们应该提示出与该字符有关的搜索项,如图: 2、使用拼音分词 要实现根据字母做补全,就必须对文档按照拼音分词。在 GitHub 上恰好有 Elasticsearch 的 拼音分

    2024年03月17日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包