如何计算mysql全文索引查询返回结果的“置信度”?

pexxcrt2  于 2021-06-21  发布在  Mysql
关注(0)|答案(0)|浏览(339)

假设您在mysql数据库表中的一列上定义了一个全文索引,以允许自然语言搜索。如果现在使用match()和against()运行查询,则可以检索搜索结果的“排名”,如下所述:
https://dev.mysql.com/doc/refman/5.6/en/fulltext-natural-language.html
例如:

mysql> SELECT id, body, MATCH (title,body) AGAINST
('Security implications of running MySQL as root'
IN NATURAL LANGUAGE MODE) AS score
FROM articles WHERE MATCH (title,body) AGAINST
('Security implications of running MySQL as root'
IN NATURAL LANGUAGE MODE);
+----+-------------------------------------+-----------------+
| id | body                                | score           |
+----+-------------------------------------+-----------------+
|  4 | 1. Never run mysqld as root. 2. ... | 1.5219271183014 |
|  6 | When configured properly, MySQL ... | 1.3114095926285 |
+----+-------------------------------------+-----------------+
2 rows in set (0.00 sec)

问题是match()返回一些浮点数,但没有上界。我需要为每个结果行导出一个百分比为0到100的“置信因子”。例如,一个特定行的95%置信度意味着它很可能就是用户正在搜索的内容。相反,如果置信度很低的话,大概是10%。
请注意,这不是从match()中选择larges分数并将其设置为100的问题。得分最高的那一行可能根本不是用户要搜索的内容。。。所以,也许使用match()是行不通的,但是,您能建议一些方法来计算这样一个“置信因子”吗?
非常感谢。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题