问题:我需要对包含多行(一对多)的字段进行全文搜索。
我有这些架构:
公司(1500 万+++)
-ID
-公司名称
类别
-公司编号
-categoryname(带全文索引)
样本数据:
公司
编号 | 公司名称
1 | A公司
类别
公司ID | 分类名称
1 | 银行 1 | 金融
目标:
我需要通过使用 IN BOOLEAN MODE 和 EXACT MATCH 获得所有提供“银行金融”的公司。
下面的查询不会有结果,因为“banking”和“finance”在不同的行上:
SELECT c.companyname FROM Company c
INNER JOIN Categoy cat ON c.id = cat.companyid
WHERE MATCH (categoryname) AGAINST ('+Banking +Finance' IN BOOLEAN MODE)
LIMIT 100
我的解决方案:
我重组了架构,添加了一个名为“Categories”的新表,其中包含“Category”中的所有连接类别(带有全文索引),当然还有一个 companyid。这可以完成工作,这是我能想到的最好/有效的方式。
我已经尝试过不同的方法,例如: - group_concat + like - union + full text
我仍然想知道是否有比我的解决方案更好的方法?