所以我想使用全文搜索实现更好的搜索功能,但它不像预期那样工作。它不会返回任何结果,或者我认为不相关的结果。mysql全文搜索没有返回预期结果
首先我检查:
显示变量,如 'ft_min%'
...回报为4
所以我有一个完整的游戏数据库。搜索的一个很好的例子是“刺客信条”。在数据库中它们实际上被存储为“刺客信条”(注意撇号)。所以,如果我做了以下查询:
SELECT g_name,MATCH(g_name)反对( '刺客信条')AS评分由 tgmp_games WHERE MATCH(g_name)反对( '刺客信条')的限制15
返回结果罚款(以下一些)
...但与搜索脚本,它采用了jQueryUI的自动完成下拉菜单,然后提交查询用更少的字符什么比整个单词时,它回来了空
SELECT g_name,MATCH(g_name)反对( '刺杀了')AS评分由 tgmp_games WHERE MATCH(g_name)反对( '刺杀了')的限制15
我也读到行的数如果数据库太低,数据库可能会产生影响,但在那里有25k行,所以应该没问题。我究竟做错了什么?
我可以得到的结果的输出,但更感兴趣的是如何获得零件搜索条件以返回一些结果。
Array
(
[g_name] => Assassins Creed III
[score] => 15.406005859375
)
Array
(
[g_name] => The Witcher 2: Assassins of Kings
[score] => 8.46316719055176
)
Array
(
[g_name] => Tenchu: Shadow Assassins
[score] => 8.46316719055176
)
Array
(
[g_name] => The Witcher 2: Assassins of Kings - Enhanced Edition
[score] => 8.27909851074219
)
Array
(
[g_name] => Assassin\'s Creed
[score] => 6.84770059585571
)
Array
(
[g_name] => Assassin\'s Creed III
[score] => 6.84770059585571
)
Array
(
[g_name] => Assassin's Creed II
[score] => 6.84770059585571
)
Array
(
[g_name] => Assassin's Creed: Revelations ...
[score] => 6.77157783508301
)
Array
(
[g_name] => Assassin\'s Creed: Revelations
[score] => 6.77157783508301
)
Array
(
[g_name] => Assassin's Creed: Brotherhood
[score] => 6.77157783508301
)
Array
(
[g_name] => Assassin's Creed: Bloodlines
[score] => 6.77157783508301
)
Array
(
[g_name] => Assassin's Creed II: Discovery
[score] => 6.77157783508301
)
Array
(
[g_name] => Assassin\'s Creed III: Liberation
[score] => 6.77157783508301
)
Array
(
[g_name] => Assassin's Creed: Altair's Chronicles
[score] => 6.69712924957275
)
Array
(
[g_name] => Assassin's Creed II: Bonfire of the Vanities
[score] => 6.69712924957275
)
另外这个命令的顺序很奇怪,因为“巫师2”比其他“刺客信条”游戏更高。不知道是否有某种模式可以让它避免陷入标点符号?
您正在使用'limit'而没有'order by'。您可能想在“限制”之前添加“按分数降序排列”。 –
为什么一些撇号在结果示例中转义而有些不是? –
为了搜索的目的,您可以去除所有标点符号。 –