场景:
我有 5 个表都需要搜索。我对每个都有适当的全文索引(索引?)。我可以使用 MATCH 和 AGAINST 单独搜索每个,并按相关性分数排序。
问题是我想组合和交织所有 5 个表的搜索结果,并将其基于相关性分数。像这样:
(SELECT *, MATCH(column) AGAINST (query) as score
FROM table1
WHERE MATCH (column) AGAINST (query))
UNION
(SELECT *, MATCH(column) AGAINST (query) as score
FROM table2
WHERE MATCH (column) AGAINST (query))
UNION
...
ORDER BY score DESC
除了表 1 的行数可能是表 2 的两倍之外,这很好用。因此,由于 mySQL 考虑了相关性的唯一性,因此表 1 的结果得分通常明显高于表 2 的结果。
最终:如果我想对每个表的结果进行平均加权,如何对 5 个不同大小的表的结果分数进行标准化?