黑马的ES课程中的不足

在我自己做项目使用ES的时候,发现了黑马没教的方法,以及一些它项目的小问题

搜索时的匹配方法

这个boolQuery().should

我的项目是通过文章的标题title和内容content来进行搜索

但是黑马它的项目只用了must

如果我们的title和content都用must,那么我们的搜索内容就是 必须同时匹配到content和title  这样子是错误的

所以我们用should(),这个是我们可能匹配到

可以这样子理解

must()表示必须,should表示或者

自动补全的字段必须是Completion类型

我们的自动补全的Suggestion字段其实是一个List<>一样的类型

所以我们的java代码中的对象是List类型

我的项目中我是把city,和title这两个放到我们的List中,然后这个来实现我们的自动补全

黑马项目的自动补全的不足

首先黑马的教程提出了一个例子

狮子,和虱子,我们搜索的时候不应该都转成拼音shizi

这样子就会导致两个都搜索出来从而导致我们的搜索结果的错误

所以我们创建时的分词器用拼音,搜索时的分词器就不用拼音了

我们指定两种分词器,这样就决定了我们的索引库的结构

analyzer是我们的创建时的分词器

search_analyzer是我们的搜索时的分词器

这样我们就实现了中文搜索的时候用中文搜索,然后拼音搜索的时候用拼音搜索

我们搜索 动  成功用中文搜索了

我们搜索dong 也成功用拼音搜索,搜到了 东

也就是说我们的ES的搜索是没有问题,因为我们的索引的结构已经指定了

中文搜索的时候使用中文 英文搜索的时候使用英文

但是我们的自动补全,其实有问题

我们的suggestion自动补全字段,其实也是要中文搜索的时候补全中文,拼音搜索的时候补全拼音

但是黑马的教程里面,它的自动补全没有中文搜索的时候补全中文

如果我们不指定中文搜索的时候补全中文

那么我们搜索 “导”这个字的时候  它的底层会转成 d  从而搜索出一堆无关的东西

例如搜索出了这些

所以我们重新弄索引,重新指定我们的搜索的分词器

这样我们就能实现

Suggestion字段的时候

拼音的时候拼音补全

中文的时候中文补全

例如我们搜索dao

搜索 导

搜索 动

ok,全部成功了

黑马的课程里面没有给Suggetion字段的补全弄成拼音的时候用拼音搜索补全,中文搜索时用中文搜索补全,从而造成了自动补全的问题,这样子就没有问题了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/867623.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Apache Seata新特性支持 -- undo_log压缩

本文来自 Apache Seata官方文档&#xff0c;欢迎访问官网&#xff0c;查看更多深度文章。 本文来自 Apache Seata官方文档&#xff0c;欢迎访问官网&#xff0c;查看更多深度文章。 Apache Seata新特性支持 – undo_log压缩 Seata新特性支持 – undo_log压缩 现状 & 痛点…

【IT领域新生必看】 Java编程中的重写(Overriding)规则:初学者轻松掌握的全方位指南

文章目录 引言什么是方法重写&#xff08;Overriding&#xff09;&#xff1f;方法重写的基本示例 方法重写的规则1. 方法签名必须相同示例&#xff1a; 2. 返回类型可以是子类型&#xff08;协变返回类型&#xff09;示例&#xff1a; 3. 访问修饰符不能比父类的更严格示例&am…

WordPress子比主题美化文章顶部添加百度收录按钮

要在WordPress子主题中美化文章顶部并添加百度收录按钮&#xff0c;你可以按照以下步骤操作&#xff1a; 首先&#xff0c;确保你的主题支持自定义CSS。如果不支持&#xff0c;你需要在主题目录下创建一个名为style.css的文件&#xff0c;并将以下代码复制到该文件中。如果你的…

全网最详细的appium 自动化测试iOS(二)

一、环境准备&#xff1a; 1、安装appium 2、xcode (appium 版本&#xff1a;12.1.0 xcode版本&#xff1a;12.5 可正常运行&#xff0c;ps:appium 版本&#xff1a;12.1.0 xcode版本&#xff1a;13.0 一直报奇奇怪怪的错误&#xff09; 3、依赖工具包安装 brew install…

VSCode设置字体大小

方法1&#xff1a;Ctrl 和 Ctrl -&#xff0c;可以控制整个VSCode界面的整体缩放&#xff0c;但是不会调整字体大小 方法2&#xff1a;该方法只能设置编辑器界面的字号&#xff0c;无法改变窗口界面的字号。 &#xff08;1&#xff09;点开左下角如下图标&#xff0c;进入…

谷粒商城学习笔记-15-数据库初始化

文章目录 一&#xff0c;创建数据库1&#xff0c;数据库名称2&#xff0c;创建数据库 二&#xff0c;创建表1&#xff0c;仓储模块建表2&#xff0c;订单模块建表3&#xff0c;商品模块建表4&#xff0c;优惠券模块建表5&#xff0c;会员模块建表6&#xff0c;DBeaver批量执行S…

小白 | Linux安装python3

一、更新包列表 首先&#xff0c;确保你的包管理器是最新的&#xff1a; sudo apt update 二、安装 Python 3 安装 Python 3 以及常用的开发工具 sudo apt install python3 python3-pip python3-venv 三、验证安装 python3 --version

FreeRTOS——事件标志组

一、事件标志组 前面所介绍的队列、信号量&#xff0c;只能实现与单个任务进行同步。而有时候某个任务可能需要与多个事件或任务进行同步&#xff0c;此时&#xff0c;事件标志组的作用就凸显出来 1.1 事件标志组简介 事件标志位&#xff1a;用一个位&#xff0c;来表示事件是…

二、Spring

二、Spring 1、Spring简介 1.1、Spring概述 官网地址&#xff1a;https://spring.io/ Spring 是最受欢迎的企业级 Java 应用程序开发框架&#xff0c;数以百万的来自世界各地的开发人员使用 Spring 框架来创建性能好、易于测试、可重用的代码。 Spring 框架是一个开源的 Jav…

密码学及其应用 —— 密码学的经典问题

1. 古典密码学问题 1.1 问题1&#xff1a;破解凯撒密码 1.1.1 问题 凯撒密码是最简单的单字母替换加密方案。这是一种通过将字母表中的字母固定向右移动几位来实现的加密方法。解密下面的文本&#xff0c;该文本通过对一个去除了空格的法语文本应用凯撒密码获得&#xff1a; …

ruoyi mybatis pagehelper 分页优化(自定义limit位置)clickhouse 外部数据源

例如加入clickhouse的分页时发现extends 不生效 则可以添加 startPage();registerDialectAlias("clickhouse", PageMySqlDialectPlus.class);List<MyMonitorlog> list monitorlogService.selectMonitorlogList(monitorlog);主要是需要注册 registerDialectAl…

js获取当前浏览器地址,ip,端口号等等

前言&#xff1a; js获取当前浏览器地址&#xff0c;ip&#xff0c;端口号等等 window.location属性查询 具体属性&#xff1a; 1、获取他的ip地址 window.location.hostname 2、获取他的端口号 window.location.port 3、获取他的全路径 window.location.origin 4、获取…

认识异常详解

1. 异常的定义&#xff1a; 在Java中&#xff0c;异常&#xff08;Exception&#xff09;是在程序执行过程中可能出现的错误或意外情况。异常可以分为两种类型&#xff1a;受检异常&#xff08;Checked Exception&#xff09;和未受检异常&#xff08;Unchecked Exception&…

【linux学习---1】点亮一个LED是多么的困难!!!

文章目录 1、原理图找对应引脚2、IO复用3、IO配置4、GPIO配置5、GPIO时钟使能6、总结7、编程8、编译9、链接10、格式转换11、反汇编&#xff08;查看用&#xff09;12、使用Makefile操作13、代码烧写14、代码验证 1、原理图找对应引脚 从上图 可以看出&#xff0c; 蜂鸣器 接到…

固态,机械,移动(U盘),sd卡,哪个更适合长期储存数据 保存数据用什么硬盘可靠 硬盘数据丢失怎么找回 硬盘维护注意事项

有关硬盘数据丢失的恢复技巧&#xff0c;这篇文章一定要收藏好。在硬盘使用过程中&#xff0c;很多情况都会导致数据丢失&#xff0c;例如硬盘跌落、病毒感染、系统文件损坏等。这时候&#xff0c;一定要采用正确的方法&#xff0c;抢救硬盘中存储的珍贵数据和文档。 有关长期保…

PO模式简介

V1顺序型&#xff1a;不能批量运行 import unittest from selenium import webdriver from time import sleep driver webdriver.Edge()# driver.maximize_window() driver.implicitly_wait(30) # driver.get(r"https://demo5.tp-shop.cn/") # driver.find_element…

Python 获取tiktok视频评论回复数据 api接口

TIKTOK api接口 用于爬取tiktok视频评论回复数据 详细采集页面如图 https://www.tiktok.com/dailymail/video/7329872821990182190?qneural%20link&t1706783508149 请求API http://api.xxxx.com/tt/video/info/comment/reply?video_id7288909913185701125&comment_…

【C++】指针的点运算与箭头运算(->)的奥秘与应用

在编程的世界里&#xff0c;指针作为连接程序与内存之间的桥梁&#xff0c;扮演着至关重要的角色。对于使用C、C等语言进行开发的程序员而言&#xff0c;理解并掌握指针的使用技巧是提升编程能力的必经之路。其中&#xff0c;指针的点运算&#xff08;.&#xff09;和箭头运算&…

Android系统集成和使用FFmpeg

文章目录 前言FFmpeg源码下载交叉编译NDK下载x264编译源码下载编译 FFmpeg编译脚本 AOSP继承FFmpeg 前言 原生AOSP中并未继承FFmpeg&#xff0c;所以要想在android上使用&#xff0c;需要自己编译集成。 FFmpeg源码下载 git clone https://git.ffmpeg.org/ffmpeg.git目前最新…

自动化测试报告pytest-html样式美化

最近我将 pytest-html 样式优化了 一版 先看优化前&#xff1a; 优化后&#xff1a; 优化内容包括&#xff1a; 删除部分多余字段新增echart图表部分字体大小、行间距、颜色做了美化调整运行环境信息移至报告最后部分字段做了汉化处理&#xff08;没全部翻译是因为&#xf…