MySQL查询标签搜索的相关性

贝克曼

我需要有关在多列中创建全文本搜索的帮助。

最后,查询应返回“ biz_name”,首先与“ business”表匹配,然后与“ tags”表匹配,然后从“ Business_tags”表中选择biz_id,然后将所有结果与“ Business Table”的优先级结果放在一起

简单来说,当某人搜索银行时,他们应该能够获得带有“银行”的公司名称以及标有“银行”的公司。

请考虑以下三个表:

业务表标签表

|biz_id |biz_name      |       |tag_id |tag_name|    
|----------------------|       |----------------|
|001    |Mac burger    |       |101    |cafe    |
|002    |Citi bank     |       |102    |burger  |
|003    |Lou’s Cafe    |       |103    |drink   |
|004    |Baltic pub    |       |104    |bank    |
|005    |T2 Restaurant |       |105    |loan    |

Business_tags表

|biz_id |tag_id |           
|---------------|       
|001    |102    |       
|002    |105    |       
|002    |104    |       
|003    |101    |       
|003    |103    |       
|004    |103    | 
|005    |102    | 
|005    |101    | 

我不能使用并集,因为我有不同的列数。谢谢您的帮助。

cvkline

您可以将三个表连接在一起,也可以在名称上进行文本搜索。

SELECT business.biz_name
   FROM business,business_tags,tags
   WHERE business.biz_id = business_tags.biz_id
   AND business_tags.tag_id = tags.tag_id
   AND (business.biz_name LIKE '%bank%' OR tags.tag_name = 'bank')

那会做你想要的吗?

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章