@words = map("LOWER($column) LIKE $_", @words);
# search for occurrences of all specified words in the column
- return "CASE WHEN (" . join(" AND ", @words) . ") THEN 1 ELSE 0 END";
+ return join (" AND ", @words), "CASE WHEN (" . join(" AND ", @words) . ") THEN 1 ELSE 0 END";
}
#####################################################################
=item B<Description>
-Returns SQL syntax for performing a full text search for specified text
-on a given column.
+Returns one or two SQL expressions for performing a full text search for
+specified text on a given column.
+
+If one value is returned, it is a numeric expression that indicates
+a match with a positive value and a non-match with zero. In this case,
+the DB must support casting numeric expresions to booleans.
+
+If the DB does not support casting numeric expresions to booleans, then
+the first value is a boolean expression that indicates the presence of
+a match, and the second value is a numeric expression that can be
+used for ranking.
There is a ANSI SQL version of this method implemented using LIKE operator,
but it's not a real full text search. DB specific modules should override
$rterm2 = $term2 if !$rterm2;
# The term to use in the WHERE clause.
- $$term = "$term1 > 0 OR $term2 > 0";
+ $$term = "$term1 OR $term2";
if ($$t =~ /not/i) {
$$term = "NOT($$term)";
}
much faster on installations that run under mod_perl than it will
be on other installations.</p>
-<p>This automatic duplicate detection does not currently work for installations
- running on PostgreSQL.</p>
-
<h3 id="v40_feat_search_ui">New Advanced Search UI</h3>
<p>Thanks to the UI work of <a href="http://guy-pyrzak.blogspot.com/">Guy