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    | 

我不能使用联合因为我有不同数量的列。 谢谢您的帮助。


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

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')

这会做你想要的吗?

链接地址: http://www.djcxy.com/p/75283.html

上一篇: Mysql query tag search with relevance

下一篇: Comparing Relevance Scores From mySQL full text searches from different tables