在mysql全文搜索中给一些字段更多的相关性和相关性排序

我在posts表中有两个字段 - post_titlepost_content 。 现在我使用标准的全文搜索来匹配两个字段的一些关键字。 我需要赋予标题字段比内容字段更具相关性,并且通过相关性排序结果...

为了实现这个目标,mysql语法看起来如何? 我使用MySQL 5.1


首先,创建三个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倍。

当您需要允许对内容进行排序时,这非常方便,例如,通过标签(用户不会查看)来标记内容,因为它允许您调整幕后结果。

链接地址: http://www.djcxy.com/p/75275.html

上一篇: Give some fields more relevance and sort by relevance in mysql full text search

下一篇: Relevant search results from a MySQL table