【发布时间】:2012-12-29 12:36:47
【问题描述】:
我有一个 MySQL 数据库(版本 5.5.28),其表如下:
products (InnoDB)
-------------------------------------------------
search_id title description
1 Levi Blue Jeans Some cool jeans
2 Gucci Handbag Great accessory
3 Prada Dress Beautiful dress
我想在 MySQL 中做这样的事情:
SELECT MATCH(title) AGAINST ('Jeans') AS score, search_id, FROM search WHERE MATCH(title) AGAINST ('Jeans' IN BOOLEAN MODE)
据我所知,您只能在 MyISAM 中执行此操作。是否可以使用 InnoDB 进行类似的搜索,而无需求助于:
对于我的应用程序(大约 1000 - 2000 条记录)Sphinx 等似乎有点矫枉过正。但是将每条记录放入一个数组并用 PHP 搜索它似乎也太多了。但也许你不同意。
PS。 LIKE 似乎不适合我。结果通常不太准确,您无法像 MATCH 那样获得分数。
【问题讨论】:
-
看起来 MySQL 6 将支持一些fulltext features,但与此同时您可能不得不使用其他东西。
标签: mysql search innodb myisam