我使用以下查询来搜索文本,
$query = "SELECT SQL_CALC_FOUND_ROWS *," .
"MATCH (keywords) AGAINST ('". $searchString ."'IN BOOLEAN MODE ) AS rel1, ".
"MATCH (title) AGAINST ('". $searchString ." 'IN BOOLEAN MODE ) AS rel2, ".
"MATCH (description) AGAINST ('". $searchString ." 'IN BOOLEAN MODE) AS rel3 ".
"WHERE MATCH (keywords,title,description) AGAINST ('" .$searchString. "' IN BOOLEAN MODE) " .
"FROM cron_video " .
"ORDER BY (rel1*1.5)+(rel2*1.25)+(rel3*1) desc, `cron_status` ASC LIMIT $start, $pagesize";但是,下面搜索id的查询会出现错误,这是BigInt类型的。
$query = "SELECT SQL_CALC_FOUND_ROWS *," .
"MATCH (id) AGAINST ('*". $searchString ."*' IN BOOLEAN MODE ) AS rel1," .
"FROM cron_video " .
"WHERE MATCH (id) AGAINST ('*" .$searchString. "*' IN BOOLEAN MODE) AS rel2" .
"ORDER BY (rel1*1.5)+(rel2) desc, `cron_status` ASC LIMIT $start, $pagesize";我的怀疑是:
1. Is it full-text-search possible for a BigInt type.关于第一个查询:
发布于 2013-03-20 09:12:35
从文件中:
Full-text indexes can be used only with MyISAM tables, and can be created only for CHAR, VARCHAR, or TEXT columns.请记住,SELECT * FROM ...不是性能友好的字段选择方法。而是只选择所需的字段。例如:SELECT f1, f2, f3 FROM t1。情况会好得多。
编辑
对不起,我的错误,在布尔模式下分数是0或1。所以你的代码是正确的。
https://stackoverflow.com/questions/15519314
复制相似问题