ES模糊查询失效的坑,附解决方案

这篇具有很好参考价值的文章主要介绍了ES模糊查询失效的坑,附解决方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

项目场景:

最近在做需求开发的时候,有个需求,需要根据关键字去ES中进行模糊搜索。于是首先想到了wildcard查询,根据关键字,利用*通配符,类似于mysql中的like一样进行模糊搜索。

问题描述

但是遇到了问题就是,根据单个汉字能正常模糊搜索,多个汉字就无法查询出数据。
单个汉字正常查询:
ES模糊查询失效的坑,附解决方案
多个汉字无法查出数据:
ES模糊查询失效的坑,附解决方案
于是我就百度找解决方案,很多人说都说在查询关键字后面加 .keyword 就可以正常查询了,于是我接着尝试,
ES模糊查询失效的坑,附解决方案
结果还是不能正常查询,而且原来单个汉字能查询的,现在也不行了
ES模糊查询失效的坑,附解决方案

原因分析:

于是我怀疑是字段类型导致的,就有了下面这个我自己建的blog的测试索引。
ES模糊查询失效的坑,附解决方案
咱们现在只关心索引中的name,newName1,newName2,newName3这4个字段,可以看到这4个字段的数据类型不同。
现在创建一条数据,
ES模糊查询失效的坑,附解决方案文章来源地址https://www.toymoban.com/news/detail-512585.html

  1. 根据name模糊查询
    ES模糊查询失效的坑,附解决方案
    ES模糊查询失效的坑,附解决方案
    可以看到在keyword类型下,无论单个汉字,还是多个汉字都可以正常查询
  2. newName1的类型为text,最上面就是这种情况,单个汉字可以,多个汉字不行
  3. newName2的类型为wildcard,跟keyword情况一样
    ES模糊查询失效的坑,附解决方案
    ES模糊查询失效的坑,附解决方案
  4. newName3的类型为text,但是附加了keyword类型
    单个汉字正常查询
    ES模糊查询失效的坑,附解决方案
    多个汉字不能查询
    ES模糊查询失效的坑,附解决方案
    加上keyword可以正常查询
    ES模糊查询失效的坑,附解决方案

总结:

  1. text类型,es会分词导致多个汉字不能正常正常查询
  2. keyword不分词可以正常查询
  3. wildcard和keyword类似
  4. text类型附加keyword类型,相当于支持两种类型,默认text,但是可以通过关键字加.keyword变成keyword类型

到了这里,关于ES模糊查询失效的坑,附解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 优先看我的博客:工控机 Ubuntu系统 输入密码登录界面后界面模糊卡死,键盘鼠标失效(不同于其他博主的问题解决方案,优先看我的博客。)

            (不同于其他博主的问题解决方案,工控机Ubuntu的系统   优先看我的博客。) 系统版本: ubuntu18.04 主机: 工控机 应用场景: 电力系统巡检机器人,工控机外hdmi接显示器,外接鼠标键盘。 问题: 之前在自己公司测试工控机可正常工作,但是发往客户现场后出现问

    2024年01月17日
    浏览(51)
  • 【vue项目部署CSS失效】VUE部署后css样式加载无效和失效多种情况解决方案

    【写在前面】vue3在vscode运行正常、build后在IDEA运行正常,但是当部署在服务器上运行发现样式加载不出来,下面我们针对这些情况进行复现与解决。 困扰我好久,当即百度原因,百度清一色下面三种情况: 1、nginx配置文件的问题 2、控制台样式404,文件没找到【文件路径错

    2023年04月09日
    浏览(41)
  • Spring 事务(Transactional)失效的七种原因及解决方案(含项目代码)

    “Spring框架提供了强大的事务管理功能,能够确保数据库操作的一致性和可靠性。然而,有时候我们可能会遇到Spring事务失效的情况,导致数据不一致或操作失败。本文将探讨Spring事务失效的原因,以及如何避免和解决这些问题。通过深入了解失效原因,我们可以更好地利用

    2024年04月10日
    浏览(41)
  • 当es使用script脚本查询聚合等操作遇到空字段报错问题解决方案

            在使用ES的脚本时,如果脚本中引用了不存在或者空的字段,则会导致脚本执行失败并抛出错误。这是因为ES会在脚本执行之前尝试检索引用的字段,如果该字段不存在则会抛出异常。         因此,在使用ES脚本时,需要确保所引用的字段都存在且不为空。可

    2024年02月11日
    浏览(54)
  • go中for range的坑以及解决方案

    相信小伙伴都遇到过以下的循环变量的问题,那是因为循环的val变量是重复使用的,即仅有一份。也就是说,每次循环后赋给val的值就会把前面循环赋给val的值替换掉,所以打印出来的值都是最后一次循环赋给val的值。 使用局部变量/临时变量,即可解决         可以设置

    2024年01月25日
    浏览(38)
  • VS2022 整个解决方案 快速查找失效--解决办法

    VS2022 整个解决方案 快速查找失效–解决办法(其它VS版本可能也一样,但未亲测) 最近在使用Vs2022的过程中,发现了使用\\\"快速查找(Ctrl+F)\\\"整个解决方案时,内容搜索不出来的问题 解决方案见下: 删除“ C:Program FilesMicrosoft Visual Studio2022[Enterprise/Pro/Community]Common7IDECommonExte

    2023年04月08日
    浏览(47)
  • 「AntV」X6开发实践:踩过的坑与解决方案

    长期更新版文档请移步语雀(「AntV」X6开发实践:踩过的坑与解决方案 (yuque.com)) --Recent update:2024-01-05 相信你们在开发中更多的需求是需要自定义拖拽源,毕竟自定义的功能扩展性高一些,而且可以根据你的业务需求灵活设置。自定义拖拽的优点就是:万物皆可成为拖拽源,

    2024年02月08日
    浏览(105)
  • 无线键盘休眠后按键失效 - 解决方案

    部分无线键盘通过2.4G模式,即USB接收器连接电脑后,一段时间未使用会进入休眠状态,例如罗技K780无线键盘,此键盘进入休眠模式后,再次按键会失效,使用任意键1秒钟之后才会唤醒键盘,因此这1秒内的按键将会失效,这严重影响用户的使用体验,甚至在键盘休眠时无法正

    2024年02月15日
    浏览(66)
  • VS2022 全局查找 整个解决方案失效

    问题现象: 在VS2022中 Ctrl+F 整个解决方案中无法查找到,但是在当前文档可以查找到。VS2015 VS2017 VS2019均可以全局查找到。 解决方案: 网上查询过程中尝试了3种方案: 重启 VS2022、重启Windows ; 删除解决方案所在文件目录的 .vs 文件夹; 删除 \\\"【VS2022安装目录】C

    2024年02月11日
    浏览(57)
  • 揭秘Spring事务失效场景分析与解决方案

    在Spring框架中,事务管理是一个核心功能,然而有时候会遇到事务失效的情况,这可能导致数据一致性问题。本文将深入探讨一些Spring事务失效的常见场景,并提供详细的例子以及解决方案。 场景: 当一个事务方法内部调用另一个方法,而被调用的方法没有声明为 @Transact

    2024年02月02日
    浏览(45)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包