在mysql全文搜索中提供一些相关性和相关性排序

Kin*_*ien 4 mysql full-text-search relevance

我在帖子表中有两个字段 - post_titlepost_content.现在我使用标准全文搜索来匹配两个字段的一些关键字.我需要让title字段比内容字段更具相关性,而不是按相关性排序结果...

实现这个目标的mysql语法是什么样的?我用的是mysql 5.1

Fil*_*elo 17

首先,创建三个FULLTEXT索引:

* one on the title column
* one on the body column
* one on both title and body columns
Run Code Online (Sandbox Code Playgroud)

然后,以下列方式构建您的查询:

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)
Run Code Online (Sandbox Code Playgroud)

这将使标题的相关性比身体高2倍.

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

  • 给你一个拇指..但我仍然不喜欢3个索引......只是不喜欢它... (2认同)