全文索引 MySQL match() against() - 按相关性和列排序?
本文介绍了MySQL match() against() - 按相关性和列排序?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
好的,所以我尝试在多列中进行全文搜索,就像这样简单:
SELECT * FROM pages WHERE MATCH(head, body) AGAINST('some words' IN BOOLEAN MODE)
现在我想按相关性排序,(找到多少个词?)我已经能够用这样的东西来做:
SELECT * , MATCH (head, body) AGAINST ('some words' IN BOOLEAN MODE) AS relevance
FROM pages
WHERE MATCH (head, body) AGAINST ('some words' IN BOOLEAN MODE)
ORDER BY relevance
现在我迷路的部分来了,我想优先考虑head
列中的相关性.
我想我可以创建两个相关性列,一个用于 head
,另一个用于 body
,但那时我会在表格中进行一些相同的搜索三次,对于我正在制作的这个函数,性能很重要,因为查询将被连接并与其他表匹配.
那么,我的主要问题是,是否有一种更快的方法来搜索相关性并确定某些列的优先级?(作为奖励,甚至可能使相关性计算列中单词出现的次数?)
任何建议或建议都会很棒.
注意:我将在 LAMP 服务器上运行它.(本地测试中的 WAMP)
推荐答案
这可能增加与您想要的头部的相关性.它不会翻倍,但对您来说可能已经足够了:
SELECT pages.*,MATCH (head, body) AGAINST ('some words') AS relevance,MATCH (head) AGAINST ('some words') AS title_relevance
FROM pages
WHERE MATCH (head, body) AGAINST ('some words')
ORDER BY title_relevance DESC, relevance DESC-- alternatively:
ORDER BY title_relevance + relevance DESC
如果您可以灵活地切换数据库引擎,您还想研究的替代方法是 Postgres.它允许设置运营商的权重并调整排名.
这篇关于MySQL match() against() - 按相关性和列排序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
全文索引 MySQL match() against() - 按相关性和列排序?相关推荐
- mysql将表按某一列排序更新_将MySQL表列值按其值的一部分排序?
您可以RIGHT()为此使用ORDER BY .让我们首先创建一个表-mysql> create table DemoTable ( UserId varchar(100) ); 使用插入命令在 ...
- java excel 多列排序,《excel表格调取行和列的数据》 excel列排序的时候怎么让所有行的信息跟着排(其它的非数据行)...
Java里面怎么调用excel表格中的x行第y列的数据,将其赋值到int型变量i InputStream inp = new FileInputStream("workbook.xls&qu ...
- MYSQL全文索引及Match() against()踩坑记录-超详细超实用
场景一 当我们使用mysql模糊查询时,经常会遇到如下情况: 如果我们customer_manager_no字段是可能会存多个值,用逗号隔开这种:当我们想查找出customer_manager_no字 ...
- Mysql MATCH() AGAINST() (MATCH AGAINST)
MySQL 全文搜索 到 3.23.23 时,MySQL 开始支持全文索引和搜索.全文索引在 MySQL 中是一个 FULLTEXT 类型索引.FULLTEXT 索引用于 MyISAM 表,可以在 C ...
- mysql主键generated_MySQL之虚拟列(generated-columns)
定义 MySQL虚拟列(generated-columns)是MySQL 5.7加入的新特性.怎么理解虚拟列?从名字来讲,"生成的字段",并不是主动插入的值. MySQL的文档,是 ...
- mysql 按两列排序吗_按两列排序MySQL表
噜噜哒 这可能有助于某人正在寻找通过两列排序表的方法,但是以相似的方式.这意味着使用聚合排序功能组合两种排序.例如,在使用全文搜索检索文章以及文章发布日期时,它非常有用.这只是一个例子,但是如果你理解 ...
- mysql如何算值_如何计算MySQL中具有特定值的列数?
以下是语法-select sum(yourColumnName1+yourColumnName2+yourColumnName3...N) as `anyAliasName1`, sum(yourCo ...
- mysql自定义两个条件排序_使用MySQL中的两个不同列进行自定义排序?
为此,将ORDER BY子句与CASE语句一起使用.让我们首先创建一个表-mysql> create table DemoTable1610 -> ( -> Marks int, - ...
- mysql中递增列_如何使用JDBC在MySQL中创建带有自动递增列的表?
在创建表时,在某些情况下,我们需要自动生成/增加列的值(例如ID).各种数据库以不同的方式支持此功能. 在MySQL数据库中,您可以使用以下语法声明列自动递增.CREATE TABLE table_n ...
最新文章
- 破解Win2008口令-ERD6.0
- Windows 2003 AD升级到 Windows 2008 AD
- 矩阵用jordan解决initial-value问题_矩阵与数值计算(6)——矩阵幂级数 sin A、cos A...
- asp.net url 重写解决方案
- AHOI(十二省联考)2019 退役记
- JAVA Stack栈和Heap堆的区别(转)
- 四元数c语言,C + OpenGL四元数
- wpf开源ui引用步骤_完善开源产品策略的6个步骤
- 笨办法学 Python · 续 练习 21:二分搜索
- 第十二章:Spring Cloud Config Server 的配置
- @loj - 2483@「CEOI2017」Building Bridges
- 浙大PAT乙级 1002. 写出这个数
- 广义线性模型matlab,使用广义线性模型拟合数据
- C++文件服务器项目—FastCGI—4
- 帝国cms更新报错解决办法
- Soul瞬间发布长录音教程
- Android面试题和答案
- 利用FileReader和FileWriter完成一个文件拷贝功能
- GBase 8a MPP Cluster 产品权限管理:回收权限
- Win7下安装Ubuntu11.10(解决linux try(hd0,0):NTFS5:no ang0引导问题)
热门文章
- 脑机接口系列课程(二) SSVEP介绍及相关软件的安装、实验范式的搭建
- 迷茫与焦虑---是世界观,价值观,人生观,人格品行的形成
- 【C语言】分支语句和循环语句还能这么用?一篇带你重新认识它(两万字超细详解)
- 【软件设计师】下午题
- Python网络爬虫实战之Fiddler抓包今日头条app!附代码
- c语言2010软件下载,Access2010官方下载免费完整版|Access2010官方下载-太平洋下载中心...
- @Transactional(rollbackFor=Exception.class) 遇上try catch
- PyQt制作二维码生成器
- 同为社会责任验厂该如何选择BSCI和SMETA验厂?
- MySql的下载和安装