1

我在任何地方都找不到我的问题的答案。我做了一项研究,但没有任何运气。

假设我们查询以下语句:

SELECT `id`, MATCH(`name`,`content`) AGAINST ('some keywords') AS `score` FROM `pages` WHERE MATCH(`name`,`content`) AGAINST ('some keywords')

MySQL会根据整个表给我一个分数pages,它会扫描那里的所有其他记录吗?或者它会给我一个分数,只是考虑在我们的例子中提供列(namecontent)的行。

4

1 回答 1

3

是的,它也在其他行中使用关键字频率。取自MySQL 全文搜索,公式为:

w = (log(dtf)+1)/sumdtf * U/(1+0.0115*U) * log((N-nf)/nf)

在哪里:

dtf 是该词条在文档中出现的次数 sumdtf 是同一文档中所有词条的 (log(dtf)+1) 之和 U
是文档中唯一词条的数量 N 是所有词条的总数文档 nf 是包含该术语的文档数

于 2012-12-16T16:32:53.697 回答