首页 > 解决方案 > 如何找到两个全文搜索结果之间的平均相关性

问题描述

我的数据库中有一个表,例如bills。它分别具有外键user_idcompany_id引用userscompanies表。users并且companies表有名为name. FULLTEXTindexex 创建于users.namecompanies.name

name我正在对列进行全文搜索。结果,我有两个大于 0 的正实数。

select bills.id,
       MATCH(users.name) AGAINST('John Doe'),
       MATCH(companies.name) AGAINST('John Doe')
from bills
    left join users on bills.user_id = users.id
    left join companies on bills.company_id = companies.id;

我天真地总结score了我的查询中的匹配项

(MATCH(users.name) AGAINST('John Doe') +
MATCH(companies.name) AGAINST('John Doe')) as score

所以结果查询看起来:

select bills.id,
       (MATCH(users.name) AGAINST('John Doe') +
        MATCH(companies.name) AGAINST('John Doe')) as score
from bills
    left join users on bills.user_id = users.id
    left join companies on bills.company_id = companies.id;

在我订购结果之后score

但是有没有更合适的方法来计算多个匹配之间的平均相关性?

标签: mysqlmathsearchmariadbfull-text-search

解决方案


推荐阅读