【发布时间】:2011-06-13 14:54:07
【问题描述】:
我在帖子表中有两个字段 - post_title 和 post_content。现在我使用标准的全文搜索来匹配两个字段的一些关键字。我需要让标题字段比内容字段更具相关性,而不是按相关性对结果进行排序......
实现这个目标的 mysql 语法是什么样的?我使用 mysql 5.1
【问题讨论】:
标签: mysql full-text-search relevance
我在帖子表中有两个字段 - post_title 和 post_content。现在我使用标准的全文搜索来匹配两个字段的一些关键字。我需要让标题字段比内容字段更具相关性,而不是按相关性对结果进行排序......
实现这个目标的 mysql 语法是什么样的?我使用 mysql 5.1
【问题讨论】:
标签: mysql full-text-search relevance
首先,创建三个 FULLTEXT 索引:
* one on the title column
* one on the body column
* one on both title and body columns
然后,按以下方式构建您的查询:
SELECT field1, field2, field3, title, body,
MATCH (title) AGAINST ('word_to_search') AS rel_title,
MATCH (body) AGAINST ('word_to_search') AS rel_body
FROM table_to_use
WHERE MATCH (title,body) AGAINST ('word_to_search')
ORDER BY (rel_title*2)+(rel_body)
这将使标题的相关性比正文高 2 倍。
当您需要允许对内容进行排序时,这非常方便,例如,按标签(用户不会查看),因为它允许您在幕后调整结果。
【讨论】: