如何根据关键字匹配度排序

最近项目遇到根据关键字匹配度排序,要求关键字匹配相等排在第一,关键字匹配最左边排第二,关键字匹配最右边排第三,关键字匹配中间排最后;遇到这样查询排序场景,用MySQL如何实现?用搜索引擎Elasticsearch如何实现?

方法一:按照上面需求用联合查询,可以实现方案,但是当数据量很大时,联合查询效率并不太好,不是最佳方案

select id,name from
(
select id,name from title where name like ‘海阔天空%‘ ORDER BY name asc
) as c1
UNION
select id,name from
(select id,name from title where name like ‘%海阔天空‘ ORDER BY name asc
) as c2
UNION
select id,name from
(select id,name from title where name like ‘%海阔天空%‘ ORDER BY name asc
) as c3
LIMIT 0, 10;

方法二: 部分实现方案,查询效率比联合查询稍微好些。

select id,name from channel where name like ‘%海阔天空%‘ order by replace(name, ‘海阔天空‘,‘‘) asc limit 0,10;

方法三:用搜索引擎Elasticsearch match方法,当数据量很大时,是最佳方案。

原文地址:https://www.cnblogs.com/e10470252222/p/11985005.html

时间: 2024-10-11 14:59:20

如何根据关键字匹配度排序的相关文章

解决solr搜索多词匹配度和排序方案

转载请标明出处:http://blog.csdn.net/hu948162999/article/details/47727159 本文主要介绍了在短语.句子.多词查询中,solr在控制查询命中数量.之后再对结果集进行排序. 在solr中 默认是or 查询,也就是说:如果搜索q 中 分出来的词越多,所匹配的数量也就越多.如:搜索短语  "中国联想笔记本" ,分词结果:中国 .联想 . 笔记本. 覆盖结果集:只要文档中包含这3个任意词,都给返回. 排序结果:按照solr的打分公式.默认匹

【CSWS2014 Summer School】互联网广告中的匹配和排序算法-蒋龙(下)

[CSWS2014 Summer School]互联网广告中的匹配和排序算法-蒋龙(上) Fig19,用到了矩阵,这个我没有听太明白,蒋博士也没有详细说明.不过可以明确的一点就是,我们常说的K-means.聚类等技术都是有实际应用价值的,而且我们日常就在使用. Fig20,这个定向广告,就更加接近推荐系统了,根据用户的特征,来投放特定的广告,这样回报率会高一点. Fig21,这里定向方式,也就是一些特征,可以利用用户的人口属性.地理位置.上网的行为等等.这个重定向,其实大家每天都在接受着重定向广

一个有意思的需求——中文匹配度

引言 最近LZ带头在做一个互联网项目,互联网的东西总是那么新鲜,这也难怪大部分猿友都喜欢互联网.这个互联网项目不仅让LZ开发了一个HBase大数据应用,近期的一次需求讨论会上,又出来一个小需求,蛮有意思的.这些需求在之前枯燥的企业内部应用开发中,还是很难见到的,毕竟内部应用更多的是业务流程的体现. 具体的需求这里不方便透露,但简单的描述一下需求,就是如何判断两个公司名是一个.这其实就是Java当中字符串的相等判断,最简单的当然是用equals来判断.但是由于实际情况是,公司名是由客户手动输出的,

二次开发 提高财务软件与企业需求的匹配度

财务管理软件作为企业管理不可或缺的管理工具,能够帮助企业有效实现资金的科学管控,提高资金部署的精准度.并且,企业在选购财务管理软件时,甚少能够做到一锤子买卖,因为随着企业的不断发展壮大,势必要根据企业新的特点进行二次开发. 二次开发,在不少企业眼中认为或许是一种浪费资金的表现,因此总是希望能够购买一款能够一直用下去的财务管理软件.然而,这些企业却忽略了时代在变化,市场在变化,企业随着市场的变化也会进行新的发展方向转变. 对于这种转变,财务管理软件如果能够满足,自然是最好不过.如果不能,那么财务管

86.八千万qq密码按相似度排序并统计密码出现次数,生成密码库

存储qq的文件地址以及按照密码相似度排序的文件地址 1 //存储qq的文件的地址 2 char path[512] = "QQ.txt"; 3 //按照密码相似度排序的文件地址 4 char pathsortbypass[512] = "QQpasswordsort.txt"; 标识qq一共有多少行 1 //文件一共有多少行 2 #define N 84331446 创建结构体存储密码,并把文件载入内存 1 //密码信息 2 struct info 3 { 4 ch

毕设之路:指标名称间的匹配度计算

一.计算方法 1.获取匹配度的计算方法: package com.gb.Util; /** * * @author 我命倾尘 * @date 2019年10月24日 下午8:47:39 * @version 1.0 * */ public class getSimilarityRatio { //指标匹配度计算方法 public static float getSimilarityRatio(String string, String target) { //定义一个用来存储指标名称和字符间匹配

SQL多个关键字匹配和单个关键字匹配

1.单个关键字匹配: 举例:在表table 中查找name为“张三”的所用数据. select * from table where name = '张三'; 单个关键字查询用“=”号 2.多个关键字匹配: 举例:在表 table 中查询name为“张三”和“李四”以及“王五”的所有信息数据 select * from table where name in ('张三',‘李四’,'王五'); 多个关键字匹配用 in(a,b,c),括号里面每个关键字之间用逗号分隔 原文地址:https://ww

使用Lucene.net进行全文查找多关键字匹配

Lucene是一个开源的搜索引擎,开发语言是Java,Lucene.net是它的.NET版本.可以在C#中方便的调用. Lucene.net目前最新版本是3.0.3,你可以从官方网站下载到最新版本:http://lucenenet.apache.org/ 使用Lucene.net进行全文查找首先要根据数据创建索引,然后再根据索引来查找关键字.本文不做任何原理性的解释,需要深入研究的请自行Google之. 创建索引 还是直接上代码的比较好: IndexWriter writer = new Ind

电商推销产品要注意高匹配度

电商竞争越来越激烈,为了能够吸引更多的客户,电商都会选择主动的去推销自己的产品,但不是所有的用户都会为你的推销买账. 商品过剩.信息过剩的当下,用户的注意力分散,购买的心理越来越复杂,网上繁杂的信息也消耗着用户大量的时间成本,他们不再喜欢趋同的产品,更喜欢的是能够和自己的审美.追求所匹配的产品.如果电商企业能够根据用户的偏好.购买习惯和以往的购买记录等信息,为用户推荐及时且关联性强的产品,那对于提升销量,提高品牌忠诚度肯定能起到非常大的作用. 个性化推荐是电商企业增加销售的常用方法,所以在精准度