0
問題:我需要對包含多行(一對多)的字段進行全文搜索。MySQL全文搜索一個是很多
我有這些模式:
公司(1500萬+++)
-id
-companyname
類別
-companyid
-categoryname(W /全文索引)
樣本數據:
公司
ID |公司名稱
1 |公司A
類別
companyid | categoryname
1 |銀行業務 1 |金融
目標: 我需要的是提供了「銀行業金融」的所有公司,但通過使用布爾模式和精確匹配。
下面的查詢將不會有,因爲「銀行」和「金融」的結果是在不同的行:
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
我的解決方案: 我重新調整了架構,我添加了一個新表命名爲「類別」,它具有來自「類別」(具有全文索引)的所有級聯類別,並且偏離了公司ID。這是工作,這是我能想到的最好/有效的方式。
我已經嘗試了不同的方法,如: - GROUP_CONCAT +像 - 聯盟+全文
我仍想知道是否有比我的解決方案更好的辦法?
嗨,謝謝你的迴應。但是,我擁有1500萬+記錄/公司,這將非常緩慢。我的解決方案創建一個新的表w/csv類別比這更快。 – john