好的,我尝试在多个列中进行全文搜索,简单的如下所示:
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-server上运行它。(WAMP在本地测试中)
https://stackoverflow.com/questions/6259647
复制相似问题