如何玩mysql5.7实现分词查询,来实现类似ES的效果

这篇具有很好参考价值的文章主要介绍了如何玩mysql5.7实现分词查询,来实现类似ES的效果。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  1. 背景:在做海外主数据项目的时候,PM提出了一个需求,说是类似于搜索的功能。但是需要实现根据输入的字符串进行相似度的查询,并且计算出输入的字符串与查出的字符串的相似度是多少。
  2. 思考:第一次听到需求的时候感觉还挺简单的,以为不就是个迷糊查询吗?但仔细一想,确实是有点出入的,模糊查询可能并不能很好的完成此次需求;
    1. 因为是这样的假设你输入的 字符串为 "ABC" ,数据库使用模糊查询出来的数据,包含的数据可能会是:“ABC”,"1ABC","11ABC","ABC1",等等之类的数据,但是都有一个共性,"ABC"必须是连着的,所以导致:"AB","BC"这样的数据出不来。这个时候假如说,我是一个用户,我想要的是:"AC",模糊查询不能给到想要的:"AC";,但是引入ES框架又太沉,申请资源啥的很麻烦。所以思考再三,能不能利用现有的资源来完成这样的需求;
  3. 解决方案
    1. 在mysql的5.7版本之后,是自带的有分词器的`ngram`,其可以支持中文、英文、日文、韩文分词;
    2. 只需在所需要的字段加上全文索引并且引用这个分词器,语句如下
        <

文章来源地址https://www.toymoban.com/news/detail-428046.html

到了这里,关于如何玩mysql5.7实现分词查询,来实现类似ES的效果的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 测试es的分词效果

    1、service 2、controller 3、实际分词效果  

    2024年02月11日
    浏览(23)
  • ES 实现数据库or查询效果

    ES :有两种常用查询           must   必须满足查询条件         should 非必须满足查询条件  如果想实现类似与mysql中的or 查询效果,必须使用should查询。但是shuold 会查询出不满足条件的数据 ,这必须加一个属性 \\\"minimum_should_match\\\": \\\"1\\\" 必须满足should条件中的一个查询

    2024年02月11日
    浏览(31)
  • 【小程序】小程序如何实现滑动翻页(类似刷短视频的交互效果)

    在微信小程序中实现上下滑动翻页的效果其实非常简单,可以说一学就会。 这篇文章将非常详细地教大家如何实现这一交互: 首先我们在 Page 的 data 属性中添加两个变量: 其中 biases 是个数组,我们要实现的效果就是每次展示 biases 的一个元素,上划切换到上一个元素,下划

    2024年02月10日
    浏览(26)
  • 橘子学ES16之分词三大组件以及如何自己实现自己的分词器

    本文来看一下ES的多字段特性,以及如何配置一个自定义的分词器。 精确值和全文检索值。精确值的意思就是不分词,不全文检索。当成mysql中的那种等值查询。全文文本值意思就是查询的时候走的是分词的路子,全文文本的匹配。 1.1、Exact Values 包括数字类型,日期类型,具

    2024年02月12日
    浏览(30)
  • ES分词查询

    全文检索的发展过程: 数据库使用SQL语句:select * from table where data like “%检索内容%” 出现lucene全文检索工具(缺点:暴露的接口相对复杂,且没有效率) 出现分布式检索服务框架solr(缺点:建立索引期间。solr搜索能力极度下降,造成实时索引效率不高) 出现 Elasticsearc

    2024年02月03日
    浏览(25)
  • ElasticSearch中实现模糊查询效果(类似数据库中like功能)

    场景: 业务要求提供一个es查询功能,实现类似模糊查询效果,并且命中字段显示红色。举例说明: es中字段内容 输入(即) 是否输出 你好,中国,强大的祖国 中国 是(则‘中国’两个字飘红) 你好,中国,强大的祖国 俄国 否 你好,中国,强大的祖国 最大 否 实

    2024年02月12日
    浏览(32)
  • ES查询索引字段的分词结果

    一、_termvectors  1、查看文档中某一个字段的分词结果 GET /{index}/{type}/{_id}/_termvectors?fields=[field] 2、样例: text的值为:https://www.b4d99.com/html/202204/45672.html 得到的结果: 二、_analyze 1、语法 2、样例: text的值为:https://www.b4d99.com/html/202204/45672.html 得到的结果:

    2024年02月11日
    浏览(49)
  • ES分词字典更新查询不到数据

    存储于es的文档数据将会被分词存储 例如: 当我们通过ik远程扩展词库增加自定义字典 : “ 词的 ”; 已经存在的数据将不会重新分词,例如上面案例中, 已经存在的数据,就不能通过新增的字典 “词的” 查询到 “分词的句子” 这条数据 利用如下命令刷新索引即可 Java

    2024年02月14日
    浏览(24)
  • Elasticsearch专栏-5.es基本用法-分词查询

    所谓分词,就是把一段语句,分割成一个个单词的过程。比如\\\"717 Hendrickson Place\\\"短语,分词后就是三个单词,即717、hendrickson、place。注意,分词后的单词默认都是小写。 分词查询,指的就是查询时,把要查询的语句(字符串)先进行分词,然后拿分词后的单词去文档集合中比

    2024年01月16日
    浏览(32)
  • MySQL 06 mysql 如何实现类似 oracle 的 merge into

    MySQL View MySQL truncate table 与 delete 清空表的区别和坑 MySQL Ruler mysql 日常开发规范 MySQL datetime timestamp 以及如何自动更新,如何实现范围查询 MySQL 06 mysql 如何实现类似 oracle 的 merge into MySQL 05 MySQL入门教程(MySQL tutorial book) MySQL 04- EMOJI 表情与 UTF8MB4 的故事 MySQL Expression 1 of ORDE

    2024年04月11日
    浏览(27)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包