php - MySQL - 按相关性排序的搜索/选择?

标签 php mysql sql

我有一个表格设置如下:

 userid year  model  color  transmission  interiorcolor wheels
-------------------------------------------------------------------
   1   2005  Fiesta   Red   MT             Black        Stock
   2   2008  Monaro   Red   AT             Black        Stock
   3   2005  F-150S   Blue   AT            Black + Red  Stock
   4   2008  Fiesta   Green   MT           Black        Stock

现在我正在构建一个 SQL 搜索(全文搜索中没有标准构建),我希望结果具有一定的相关性。

我的意思是,例如,如果有人输入“2008 Fiesta”,现在使用基本查询,结果会按此顺序出现

编号#1,编号#2,编号#4

但在这种情况下,我真的希望#4 位于搜索的顶部,因为它与我在两个字段而不是一个字段上的搜索相匹配。

谢谢!

最佳答案

您可能想看看使用 Lucene(或 Lucene 之上的 SOLR),而不是像这样依赖 MySQL。您仍然可以将真实数据存储在 MySQL 中。我使用的一般设置是 SOLR/Lucene 进行全文/相关性搜索以获取我感兴趣的实体的 ID,然后点击 MySQL 获取这些实体的实际数据。使用 SOLR/Lucene 为您提供全文搜索,并在搜索/排序数据的方式上增加更多功能,此外它还提供词干提取等功能。

关于php - MySQL - 按相关性排序的搜索/选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6390977/

相关文章:

c# - 如何使用自动增量列 SQLite 插入行

MySQL 分组查询

mysql - 选择给定用户关注的所有用户创建的所有帖子

php - 为什么我的 PHP 登录系统总是出现错误 500

php - Codeigniter 将参数传递给函数

php - 远程mysql连接

php - 检索维基百科文章的第一段

MySQL连接与AVG计算

mysql - SQL查询条件,用于根据条件获取用户的答案

php - Mysql 错误 #1305 FUNCTION db.sys_exec 不存在