Mysql Fulltext 全文索引 score值 含义及取值

环境Mysql8 支持fulltext全文索引的引擎为InnoDB MyISAM. 支持char varchar text类型的字段作为全文索引。

CREATE TABLE test_text (
          id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
          info VARCHAR(2000),
          FULLTEXT (info)
) ENGINE=InnoDB;

INSERT INTO test_text (info) VALUES
        ('3453232453,3453424356,2341234,234231534,2154234'),
        ('123544345,3452345,32452,654643'),
        ('453,24352354,3454,3452,345346,4564,3435');

SELECT id, MATCH (info) AGAINST ('3453232453,3452345,2341234,234231534,2154234' IN NATURAL LANGUAGE MODE) AS score  FROM test_text order by score desc;

通过修改需要匹配的文本内容可以发现根据内容不同,score的取值并非0-1或者0-100

     在Mysql中通过MATCH(col1,col2..) AGAINST(expr..)语法得到的值并不能直接作为匹配相似度百分比来使用,该语句得到的score值与数据总量、文本值、分词符、匹配关键字长度等因素相关,score值越大代表匹配度越高,但是并不是匹配的相似度百分比。

      如果需要计算匹配度百分比,需要对所有score值求和,然后取 每条记录的score/sum(score) * 100 作为每条记录的相似度百分比。

 

参:mysql8match-against

       fulltext-score-explained

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值