dar*_*ark 4 mysql sql full-text-search
我已经读过使用全文搜索比使用LIKE %%更快.我已经更新了我的脚本,但似乎总是有0个结果.
SELECT *,
MATCH(pages) AGAINST('doodle') AS score
FROM books
WHERE MATCH(pages) AGAINST('doodle')
ORDER BY score DESC
Run Code Online (Sandbox Code Playgroud)
$关键字长于4个字符,我将pages列索引为全文.我在"yankee doodle"格式的pages列中有"doodle".
我也尝试过这个
SELECT *,
MATCH(pages) AGAINST ('doodle' IN BOOLEAN MODE) AS score
FROM books
WHERE MATCH(pages) AGAINST ('doodle' IN BOOLEAN MODE)";
Run Code Online (Sandbox Code Playgroud)
它们都不起作用:\
Pek*_*ica 13
全文搜索有一些奇怪的怪癖.
例如,本页最后几段中描述的行为可能是您遇到问题的原因:
....例如,虽然前面显示的文章表的每一行都有"MySQL"这个词,但搜索这个词不会产生任何结果:
Run Code Online (Sandbox Code Playgroud)mysql> SELECT * FROM articles -> WHERE MATCH (title,body) AGAINST ('MySQL'); Empty set (0.00 sec)搜索结果为空,因为"MySQL"一词出现在至少50%的行中.因此,它被有效地视为一个禁用词.对于大型数据集,这是最理想的行为:自然语言查询不应返回1GB表中的每隔一行.对于小数据集,可能不太理想.
这里的答案是添加更多行,或使用布尔搜索.
如果您需要加权搜索结果,请查看Posted by John Craig on December 16 2009 7:01pm链接页面上的注释以获取变通方法建议.
| 归档时间: |
|
| 查看次数: |
3982 次 |
| 最近记录: |