【发布时间】:2012-03-20 17:20:25
【问题描述】:
我了解带有通配符等的 LIKE 结果。我需要知道的是一种获得最相关搜索结果的好方法。
例如: 我搜索“Front Brake CarModel”或类似的东西。
目前我用空格分解字符串并创建一个加法 OR/WHERE 状态,因此查询看起来像这样。
SELECT * FROM table WHERE article_text LIKE '%Front%' OR article_text LIKE '%Brake%' OR article_text LIKE '%CarModel%'
由于我的新手搜索技能,这不是很好,因为它会为搜索词中的每个单词获得结果。我想要做的是得到结果并与顶部找到最多单词的文章进行排序。如果这是有道理的。
建议?
编辑:表是 InnoDB 类型,由于外键限制而无法更改类型。因此消除了我使用 FULLTEXT 索引的能力:(
【问题讨论】:
-
@MarcusAdams 不幸的是没有。我的表是 InnoDB,无法更改类型。所以我不能使用 FULLTEXT 索引。
-
那么为什么不创建一个只包含搜索文本的新表,以及作为 MyIASM 的“真实”表的键?
标签: php mysql optimization