aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--phpBB/phpbb/search/fulltext_native.php33
-rw-r--r--phpBB/search.php6
-rw-r--r--tests/functional/search/mysql_test.php4
-rw-r--r--tests/functional/search/native_test.php5
-rw-r--r--tests/functional/search/postgres_test.php4
-rw-r--r--tests/search/native_test.php12
6 files changed, 16 insertions, 48 deletions
diff --git a/phpBB/phpbb/search/fulltext_native.php b/phpBB/phpbb/search/fulltext_native.php
index 1a89182978..fb3726c957 100644
--- a/phpBB/phpbb/search/fulltext_native.php
+++ b/phpBB/phpbb/search/fulltext_native.php
@@ -325,7 +325,6 @@ class fulltext_native extends \phpbb\search\base
}
$this->db->sql_freeresult($result);
}
- unset($exact_words);
// now analyse the search query, first split it using the spaces
$query = explode(' ', $keywords);
@@ -451,39 +450,21 @@ class fulltext_native extends \phpbb\search\base
$this->{$mode . '_ids'}[] = $words[$word];
}
}
- // throw an error if we shall not ignore unexistant words
- else if (!$ignore_no_id)
+ else
{
if (!isset($common_ids[$word]))
{
$len = utf8_strlen($word);
- if ($len >= $this->word_length['min'] && $len <= $this->word_length['max'])
- {
- trigger_error(sprintf($this->user->lang['WORD_IN_NO_POST'], $word));
- }
- else
+ if ($len < $this->word_length['min'] || $len > $this->word_length['max'])
{
$this->common_words[] = $word;
}
}
}
- else
- {
- $len = utf8_strlen($word);
- if ($len < $this->word_length['min'] || $len > $this->word_length['max'])
- {
- $this->common_words[] = $word;
- }
- }
}
- // we can't search for negatives only
- if (!sizeof($this->must_contain_ids))
- {
- return false;
- }
-
- if (!empty($this->search_query))
+ // Return true if all words are not common words
+ if (sizeof($exact_words) - sizeof($this->common_words) > 0)
{
return true;
}
@@ -518,6 +499,12 @@ class fulltext_native extends \phpbb\search\base
return false;
}
+ // we can't search for negatives only
+ if (empty($this->must_contain_ids))
+ {
+ return false;
+ }
+
$must_contain_ids = $this->must_contain_ids;
$must_not_contain_ids = $this->must_not_contain_ids;
$must_exclude_one_ids = $this->must_exclude_one_ids;
diff --git a/phpBB/search.php b/phpBB/search.php
index 2d516502ed..d03cef5e14 100644
--- a/phpBB/search.php
+++ b/phpBB/search.php
@@ -527,12 +527,6 @@ if ($keywords || $author || $author_id || $search_id || $submit)
$total_match_count = $search->author_search($show_results, $firstpost_only, $sort_by_sql, $sort_key, $sort_dir, $sort_days, $ex_fid_ary, $m_approve_posts_fid_sql, $topic_id, $author_id_ary, $sql_author_match, $id_ary, $start, $per_page);
}
- // For some searches we need to print out the "no results" page directly to allow re-sorting/refining the search options.
- if (!sizeof($id_ary) && !$search_id)
- {
- trigger_error('NO_SEARCH_RESULTS');
- }
-
$sql_where = '';
if (sizeof($id_ary))
diff --git a/tests/functional/search/mysql_test.php b/tests/functional/search/mysql_test.php
index 7af8051417..52a7b14f40 100644
--- a/tests/functional/search/mysql_test.php
+++ b/tests/functional/search/mysql_test.php
@@ -16,8 +16,4 @@ class phpbb_functional_search_mysql_test extends phpbb_functional_search_base
{
protected $search_backend = '\phpbb\search\fulltext_mysql';
- protected function assert_search_not_found($keywords)
- {
- $this->markTestIncomplete('MySQL search when fails doesn\'t show the search query');
- }
}
diff --git a/tests/functional/search/native_test.php b/tests/functional/search/native_test.php
index ce568df616..512c6f2830 100644
--- a/tests/functional/search/native_test.php
+++ b/tests/functional/search/native_test.php
@@ -15,9 +15,4 @@ require_once dirname(__FILE__) . '/base.php';
class phpbb_functional_search_native_test extends phpbb_functional_search_base
{
protected $search_backend = '\phpbb\search\fulltext_native';
-
- protected function assert_search_not_found($keywords)
- {
- $this->markTestIncomplete('Native search when fails doesn\'t show the search query');
- }
}
diff --git a/tests/functional/search/postgres_test.php b/tests/functional/search/postgres_test.php
index 487b8aeebb..974b417659 100644
--- a/tests/functional/search/postgres_test.php
+++ b/tests/functional/search/postgres_test.php
@@ -16,8 +16,4 @@ class phpbb_functional_search_postgres_test extends phpbb_functional_search_base
{
protected $search_backend = '\phpbb\search\fulltext_postgres';
- protected function assert_search_not_found($keywords)
- {
- $this->markTestIncomplete('Postgres search when fails doesn\'t show the search query');
- }
}
diff --git a/tests/search/native_test.php b/tests/search/native_test.php
index 18c6df2445..4911160cc0 100644
--- a/tests/search/native_test.php
+++ b/tests/search/native_test.php
@@ -106,17 +106,17 @@ class phpbb_search_native_test extends phpbb_search_test_case
array(
'-foo',
'all',
- false,
- null,
- null,
+ true,
+ array(),
+ array(1),
array(),
),
array(
'-foo -bar',
'all',
- false,
- null,
- null,
+ true,
+ array(),
+ array(1, 2),
array(),
),
// all common