本文介绍了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() - 按相关性和列排序?相关推荐

  1. mysql将表按某一列排序更新_将MySQL表列值按其值的一部分排序?

    您可以RIGHT()为此使用ORDER BY .让我们首先创建一个表-mysql> create table DemoTable ( UserId varchar(100) ); 使用插入命令在 ...

  2. java excel 多列排序,《excel表格调取行和列的数据》 excel列排序的时候怎么让所有行的信息跟着排(其它的非数据行)...

    Java里面怎么调用excel表格中的x行第y列的数据,将其赋值到int型变量i InputStream inp = new FileInputStream("workbook.xls&qu ...

  3. MYSQL全文索引及Match() against()踩坑记录-超详细超实用

    场景一 当我们使用mysql模糊查询时,经常会遇到如下情况: 如果我们customer_manager_no字段是可能会存多个值,用逗号隔开这种:当我们想查找出customer_manager_no字 ...

  4. Mysql MATCH() AGAINST() (MATCH AGAINST)

    MySQL 全文搜索 到 3.23.23 时,MySQL 开始支持全文索引和搜索.全文索引在 MySQL 中是一个 FULLTEXT 类型索引.FULLTEXT 索引用于 MyISAM 表,可以在 C ...

  5. mysql主键generated_MySQL之虚拟列(generated-columns)

    定义 MySQL虚拟列(generated-columns)是MySQL 5.7加入的新特性.怎么理解虚拟列?从名字来讲,"生成的字段",并不是主动插入的值. MySQL的文档,是 ...

  6. mysql 按两列排序吗_按两列排序MySQL表

    噜噜哒 这可能有助于某人正在寻找通过两列排序表的方法,但是以相似的方式.这意味着使用聚合排序功能组合两种排序.例如,在使用全文搜索检索文章以及文章发布日期时,它非常有用.这只是一个例子,但是如果你理解 ...

  7. mysql如何算值_如何计算MySQL中具有特定值的列数?

    以下是语法-select sum(yourColumnName1+yourColumnName2+yourColumnName3...N) as `anyAliasName1`, sum(yourCo ...

  8. mysql自定义两个条件排序_使用MySQL中的两个不同列进行自定义排序?

    为此,将ORDER BY子句与CASE语句一起使用.让我们首先创建一个表-mysql> create table DemoTable1610 -> ( -> Marks int, - ...

  9. mysql中递增列_如何使用JDBC在MySQL中创建带有自动递增列的表?

    在创建表时,在某些情况下,我们需要自动生成/增加列的值(例如ID).各种数据库以不同的方式支持此功能. 在MySQL数据库中,您可以使用以下语法声明列自动递增.CREATE TABLE table_n ...

最新文章

  1. 破解Win2008口令-ERD6.0
  2. Windows 2003 AD升级到 Windows 2008 AD
  3. 矩阵用jordan解决initial-value问题_矩阵与数值计算(6)——矩阵幂级数 sin A、cos A...
  4. asp.net url 重写解决方案
  5. AHOI(十二省联考)2019 退役记
  6. JAVA Stack栈和Heap堆的区别(转)
  7. 四元数c语言,C + OpenGL四元数
  8. wpf开源ui引用步骤_完善开源产品策略的6个步骤
  9. 笨办法学 Python · 续 练习 21:二分搜索
  10. 第十二章:Spring Cloud Config Server 的配置
  11. @loj - 2483@「CEOI2017」Building Bridges
  12. 浙大PAT乙级 1002. 写出这个数
  13. 广义线性模型matlab,使用广义线性模型拟合数据
  14. C++文件服务器项目—FastCGI—4
  15. 帝国cms更新报错解决办法
  16. Soul瞬间发布长录音教程
  17. Android面试题和答案
  18. 利用FileReader和FileWriter完成一个文件拷贝功能
  19. GBase 8a MPP Cluster 产品权限管理:回收权限
  20. Win7下安装Ubuntu11.10(解决linux try(hd0,0):NTFS5:no ang0引导问题)

热门文章

  1. 脑机接口系列课程(二) SSVEP介绍及相关软件的安装、实验范式的搭建
  2. 迷茫与焦虑---是世界观,价值观,人生观,人格品行的形成
  3. 【C语言】分支语句和循环语句还能这么用?一篇带你重新认识它(两万字超细详解)
  4. 【软件设计师】下午题
  5. Python网络爬虫实战之Fiddler抓包今日头条app!附代码
  6. c语言2010软件下载,Access2010官方下载免费完整版|Access2010官方下载-太平洋下载中心...
  7. @Transactional(rollbackFor=Exception.class) 遇上try catch
  8. PyQt制作二维码生成器
  9. 同为社会责任验厂该如何选择BSCI和SMETA验厂?
  10. MySql的下载和安装