summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/search.module20
-rw-r--r--modules/search/search.module20
2 files changed, 40 insertions, 0 deletions
diff --git a/modules/search.module b/modules/search.module
index 31595ec5b..a34754134 100644
--- a/modules/search.module
+++ b/modules/search.module
@@ -129,6 +129,9 @@ function do_search($search_array) {
$name = $row["name"];
$count = $row["count"];
+ // Build reduction variable
+ $reduction[$lno][$word] = true;
+
// If the just fetched row is not already in the table
if ($results[$lno]["lno"] != $lno) {
$results[$lno]["count"] = $count;
@@ -153,6 +156,23 @@ function do_search($search_array) {
}
if ($found) {
+ foreach ($results as $lno => $values) {
+ $pass = true;
+ foreach ($words as $word) {
+ if (!$reduction[$lno][$word]) {
+ $pass = false;
+ }
+ }
+ if ($pass) {
+ $fullresults[$lno] = $values;
+ }
+ }
+ $results = $fullresults;
+ if (!is_array($results)) {
+ $found = 0;
+ }
+ }
+ if ($found) {
// Black magic here to sort the results
array_multisort($results, SORT_DESC);
diff --git a/modules/search/search.module b/modules/search/search.module
index 31595ec5b..a34754134 100644
--- a/modules/search/search.module
+++ b/modules/search/search.module
@@ -129,6 +129,9 @@ function do_search($search_array) {
$name = $row["name"];
$count = $row["count"];
+ // Build reduction variable
+ $reduction[$lno][$word] = true;
+
// If the just fetched row is not already in the table
if ($results[$lno]["lno"] != $lno) {
$results[$lno]["count"] = $count;
@@ -153,6 +156,23 @@ function do_search($search_array) {
}
if ($found) {
+ foreach ($results as $lno => $values) {
+ $pass = true;
+ foreach ($words as $word) {
+ if (!$reduction[$lno][$word]) {
+ $pass = false;
+ }
+ }
+ if ($pass) {
+ $fullresults[$lno] = $values;
+ }
+ }
+ $results = $fullresults;
+ if (!is_array($results)) {
+ $found = 0;
+ }
+ }
+ if ($found) {
// Black magic here to sort the results
array_multisort($results, SORT_DESC);