首页 > 数据库 >一种可以实现搜索结果按照相似度来排序的sql,核心是分词和order by like 的使用

一种可以实现搜索结果按照相似度来排序的sql,核心是分词和order by like 的使用

时间:2023-12-16 16:56:22浏览次数:34  
标签:like title order 搜索 度来 排序 分词

常规的搜索一般使用like执行模糊搜索,这种搜索有个缺陷,一旦搜索内容里面有一个错的就会导致搜索失败。

有没有一种实现可以容错的且按照相似度排序的方法呢?类似百度 google那样的。

经过自己的测试发现使用分词结合排序的order by like 可以实现。

我直接给出例子sql的吧  

比如搜索内容表content 里面的标题title  分词是 php 和 数组  

select  * FROM content   where title  like '%php%'  or title  like '%数组%'  order by  ( 1+(title like '%php%' )  + ( title like '%数组%' )  ) desc 

最终排序是按照like的值相加的结果来排序,也就是相似值叠的越大越靠前。

至于如何给搜索内容分词,可以使用专门的分词类 或者直接按字和空格拆分也可以。

标签:like,title,order,搜索,度来,排序,分词
From: https://www.cnblogs.com/smxjue/p/17905018.html

相关文章

  • likeshop商城小程序接入第三方支付富友支付方法
    likeshop商城小程序接入富友支付的小程序支付功能需要用到富友的第三方插件一、开发步骤第一步:订单支付插件接口-封装报文;第二步:打开富友插件:https://mp.weixin.qq.com/wxopen/plugindevdoc?appid=wxe2ae77d4cbb8abf0&token=158753519&lang=zh_CN,第三步:小程序加入富友插件代码,把第......
  • Mysql Order 排序的时候占用很长时间解决思路
    MySQL中的连表查询(JOIN)在进行ORDERBY排序时可能会变得很慢,尤其是当处理大量数据时。以下是一些优化策略,可以帮助减少排序操作的时间:索引优化:确保参与排序的列上有索引。如果排序的列是从JOIN的表中来的,那么在这些列上创建索引可能会提高性能。如果可能,尝试将索引的顺序与ORD......
  • HE省队be like
    原版歌词放弃啦不干啦(╯°Д°)╯︵┻━┻当个学生累死啦尼玛费尽心思考试作弊到底为个啥完蛋啦红灯啦摔门离去不学啦领完成绩就和姐妹蕾丝准备回老家考试之前才不是没有努力奋战三年却被成绩击毙虽已亮红灯但还有闺蜜怎不把学校枪毙北大学生也去开店卖猪肉工作是什......
  • P4177 [CEOI2008] order
    题意给定\(n\)个工作,\(m\)个机器。每个工作需要若干机器获得\(s_i\)的奖励。机器可以选择租和买。租只能在当前工作内使用。Sol考虑在最大权闭合子图上面改改。发现直接把工作往汇点连买的权值就完事了。Code#include<iostream>#include<algorithm>#include<cst......
  • Docker容器中配置和启用Java Flight Recorder(JFR)
    1.简介和背景在Java应用程序性能调优中,JavaFlightRecorder(JFR)是一个非常强大的工具。它能够实时收集Java应用程序的运行数据,提供有关性能问题的深入见解。在Docker容器中使用JFR,可以更轻松地管理和监控应用程序性能。2.JFR的基本概念和工作原理JFR是Java的一项特性,它通过事件记......
  • ApplicationContext is unlikely to start due to a @ComponentScan of the default p
    springboot警告:ApplicationContextisunlikelytostartduetoa@ComponentScanofthedefaultpackage解决办法:1、一般发出这个警告的原因是你把启动类直接放在的src目录下面。2、你需要在src目录下面再建一个包,然后把启动类放到下面。3、或者你错将启动类放到java文件中了......
  • One added/edited TODO item was found. Would you like to review it?
    ......
  • three.js 使用 sortObjects 和 renderOrder 处理网格修改后覆盖模型的问题
    问题效果:目标效果处理此问题首先需要了解three的渲染机制:渲染机制threejs的渲染器是基于webGL的。它的渲染机制是根据物体离照相机的距离来控制和进行渲染的。也就是说,它根据物体的空间位置进行排序,然后根据这个顺序来渲染物体。对于透明的物体,是按照从最远到最近的顺序进行......
  • Border 基本使用
    Border基本使用1单线效果  代码:<BorderGrid.Row="0"BorderThickness="0,0,0,1"BorderBrush="Red"/>说明:BorderThickness="0,0,0,1"可以分别设置四条边,顺序是:左上右下2虚线效果  代码:<BorderGrid.Row="0"BorderThick......
  • 记录一次MySQL多表查询,order by不走索引的情况.
    首先是表结构,部分字段脱敏已删除 CREATETABLE`log_device_heart`(`id`intunsignedNOTNULLAUTO_INCREMENT,`device_number`varchar(255)CHARACTERSETutf8mb4COLLATEutf8mb4_0900_ai_ciNOTNULL,`time_periods_begin`datetimeNOTNULL,`time_peri......