好的,我试着在多个栏目中进行全文搜索,就像这样简单:
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)