【问题标题】:Why does mysql fulltext search ignore obvious?为什么mysql全文搜索忽略明显?
【发布时间】:2018-01-16 12:17:21
【问题描述】:

我在 mysql 中使用全文搜索(string 列有 FULLTEXT-index),但很惊讶非常明显的匹配被排序,但与更好的排名或更高的顺序无关:

mysql> SELECT r_nr,string,  MATCH( string ) AGAINST( 'Tuhat üks ööd' ) AS score FROM raamat.sonaotsing WHERE MATCH( string ) AGAINST( 'Tuhat üks ööd' ) LIMIT 10;
+--------+-------------------------------------------------------------------------+--------------------+
| r_nr   | string                                                                  | score              |
+--------+-------------------------------------------------------------------------+--------------------+
|  54815 | Tuhat üks ööd 1932 Noor Eesti                                           |  7.703660488128662 |
|  26844 | Tuhat üks ööd 2006 994940990x 9789949409907 Pegasus                     | 7.6198859214782715 |
|  83249 | Tuhat fakti Nõukogude Eestist 1976 Perioodika                           | 7.5379133224487305 |
|  32090 | Tuhat üks viirastust 1997 Alexandre Dumas Athena                        | 7.5379133224487305 |
|  11052 | Ja üks päev on lihtsalt tuhat ööd 2002 Ly Gunnaritütar 9985787765       | 7.5379133224487305 |
|  20826 | Tuhat üks ööd Valitud lugusid I II 1984 Eesti Raamat                    | 7.5379133224487305 |
|  38774 | Tuhat roosi 1995 Bethany Campbell Kuldsulg                              | 7.5379133224487305 |
|  50706 | Tuhat üks ööd Valitud lugusid 1984 1 osa Eesti Raamat                   | 7.5379133224487305 |
| 186004 | Tuhat üks ööd Hommikumaa muinasjutud 1911 O Rudolph J ja A Paalmann     | 7.5379133224487305 |
| 175832 | Jeesus toitis viis tuhat meest Loe ja värvi 1991 Ra                     |  7.457685470581055 |
+--------+-------------------------------------------------------------------------+--------------------+

我无法弄清楚为什么第 3、4、5 和 7 行的匹配分数与第 6、8 和 9 行相同。第 3 行仅包含我查询中的一个单词,第 4 行仅包含第 2 行和第 5 行包含所有 3 但在不同的顺序而不是顺序。据我了解,第 1、2、6、8 和 9 行应该是匹配的前 5 行,而不是特别按照这个顺序。

我在这里错过了什么明显的东西吗?

【问题讨论】:

  • 我不是全文搜索算法的专家,但只是猜测字符串长度和其他字符(噪声)可能不是将结果从顶部结果中推出的数字。
  • @Alex:在我看来,第 6 行和第 8 行的噪声/匹配率比第 3 行或第 5 行要好得多。第 10 行的匹配分数几乎相同,但只有一个匹配的单词。

标签: mysql full-text-search


【解决方案1】:

在某些方面很明显:我的默认配置(Myisam 表)4 用于最小字长,所以三个字母的单词('üks' 和 'ööd')都被忽略了。

更改配置后

ft_min_word_len = 3

我得到了更好的结果,但仍然有一些奇怪的行比简单的行得分更高,并且噪声/匹配率更低。但这是另一回事了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-25
    • 2015-02-14
    • 1970-01-01
    • 2011-04-04
    • 1970-01-01
    • 2012-01-10
    相关资源
    最近更新 更多