revert to regex search when < 3 chars

This commit is contained in:
Friendika 2011-04-05 06:27:40 -07:00
parent 4c5e091b78
commit ee19746aa9

View file

@ -36,12 +36,20 @@ function search_content(&$a) {
AND `item`.`deny_gid` = '' AND `item`.`deny_gid` = ''
"; ";
$s_bool = "AND MATCH (`item`.`body`) AGAINST ( '%s' IN BOOLEAN MODE )";
$s_regx = "AND `item`.`body` REGEXP '%s' ";
if(mb_strlen($search) >= 3)
$search_alg = $s_bool;
else
$search_alg = $s_regx;
$r = q("SELECT COUNT(*) AS `total` $r = q("SELECT COUNT(*) AS `total`
FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id` FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
WHERE `item`.`visible` = 1 AND `item`.`deleted` = 0 WHERE `item`.`visible` = 1 AND `item`.`deleted` = 0
AND ( `wall` = 1 OR `contact`.`uid` = %d ) AND ( `wall` = 1 OR `contact`.`uid` = %d )
AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
AND MATCH (`item`.`body`) AGAINST ( '%s' IN BOOLEAN MODE ) $search_alg
$sql_extra ", $sql_extra ",
intval(local_user()), intval(local_user()),
dbesc($search) dbesc($search)
@ -65,7 +73,7 @@ function search_content(&$a) {
WHERE `item`.`visible` = 1 AND `item`.`deleted` = 0 WHERE `item`.`visible` = 1 AND `item`.`deleted` = 0
AND ( `wall` = 1 OR `contact`.`uid` = %d ) AND ( `wall` = 1 OR `contact`.`uid` = %d )
AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
AND MATCH (`item`.`body`) AGAINST ( '%s' IN BOOLEAN MODE ) $search_alg
$sql_extra $sql_extra
ORDER BY `parent` DESC ", ORDER BY `parent` DESC ",
intval(local_user()), intval(local_user()),