【问题标题】:Mysql full text index giving same score for exact match and partial, why?Mysql全文索引对完全匹配和部分给出相同的分数,为什么?
【发布时间】:2014-05-21 11:32:49
【问题描述】:

我在带有全文索引的 mysql 5.6 中遇到了这种奇怪的行为

我正在尝试搜索患者数据库并首先获取完全匹配,然后通过分数以最低分数进行部分匹配,因此我不会返回 100000+ 个结果,只是一些建议以防止重复进入 EHR 类型的应用程序

问题是完全匹配和部分匹配的分数相同......

这是预期的行为吗? 我有什么选择?

【问题讨论】:

    标签: mysql sql search indexing full-text-search


    【解决方案1】:

    您说完全匹配和部分匹配的分数相同,但您的示例中没有任何完全匹配。 (“路易斯测试”!=“路易斯文本”)。它只是有各种部分匹配。

    这是预期行为,因为使用 NATURAL LANGUAGE MODE 的 MATCH 仅面向单词。它不会对部分单词匹配进行评分 - 即,相似的单词不计入相关性值。由于每条记录匹配的词数相同,并且每条记录的总词数相同,因此它们各自获得相同的相关值(分数)。

    “相关性是根据行中的单词数、该行中唯一单词的数量、集合中的单词总数以及包含特定单词的文档(行)数来计算的。” -- http://dev.mysql.com/doc/refman/5.6/en/fulltext-natural-language.html

    如果您想对单词进行模糊匹配,您应该查看这个 SO question 以了解可能的替代匹配方案: How do I do a fuzzy match of company names in MYSQL with PHP for auto-complete?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-04
      • 2023-01-02
      • 2023-04-03
      • 2011-06-11
      • 2011-10-22
      相关资源
      最近更新 更多