SPAM 対策になるかどうかもあやしいような提案ですが。
do_search() に送られた検索語句が半角スペースばかり*1の場合、
$keys = get_search_words(preg_split('/\s+/', $word, -1, PREG_SPLIT_NO_EMPTY));
で$key にはarray() がセットされます。
しかし、そのような場合でも全ページの一覧を得ています。(foreach ($keys as $key) の内側でget_source() しているので、さらに全ページのソースを得るというような無駄な事は、していないようですが)
無駄といえば無駄な処理なので、
if (empty($keys)) { $pages = array(); } else { $pages = get_existpages(); }
のようにしてしまうというのはどうでしょう?(if ($non_format) return array_keys($pages); の手前までelse 部分に入れてしまう方が、いいような気も・・・)
$keys = get_search_words(preg_split('/\s+/', $word, -1, PREG_SPLIT_NO_EMPTY)); + if ( empty($keys) ) + return str_replace('$1', '', $_msg_notfoundresult);