我以前从未完成过从MYSQL进行搜索,但是我需要实现搜索。我有三个表:articles
,articles_tags
和tags
。
表articles
包含我要搜索的第一件事,title
字段。
表articles_tags
是将articles
和tags
关联在一起的数据透视表。 articles_tags
有两个字段,分别是:articles_id
和tag_id
。
并且,表tags
包含我想搜索的第二件事,name
字段。
我的问题是,我需要一种方法来搜索title
字段,以及与该文章相关的每个标签(tags.name
),并返回特定文章的相关性(或按相关性排序)。
什么是实现此目标的好方法?我敢肯定,仅通过一个查询就无法完成,因此可以进行两个查询,然后再将mixing
关联起来,就可以了。
谢谢。
Edit:
忘了说了,如果我可以给匹配标签多得多的权重,而不是匹配标题中的单词,那真是太棒了。我并不是真的要别人写东西,而是给我一些指导。我在PHP和MySQL中都是新手。我以前从未完成过从MYSQL进行搜索,但是我需要实现搜索。我有三个表:articles,articles_tags和tag。表格文章包含我想搜索的第一件事...
[从@ james.c.funk给出的答案开始,但要进行一些更改。
这时是否值得,建议您考虑将搜索工作转移到仅为该目的而实际编写的内容上?
过去我是这样做的。它看起来很慢,但我想您会发现它不是。
您可能想研究狮身人面像,http://www.sphinxsearch.com/
此快速演示查询远未优化,但应该是一个很好的起点