# Contributor(s): Terry Weissman <terry@mozilla.org>
# Dan Mosedale <dmose@mozilla.org>
# Stephan Niemz <st.n@gmx.net>
+# Andreas Franke <afranke@mathweb.org>
use diagnostics;
use strict;
return \@list;
}
+#
+# support for "any/all/nowordssubstr" comparison type ("words as substrings")
+#
+sub GetByWordListSubstr {
+ my ($field, $strs) = (@_);
+ my @list;
+
+ foreach my $word (split(/[\s,]+/, $strs)) {
+ if ($word ne "") {
+ push(@list, "INSTR(LOWER($field), " . lc(SqlQuote($word)) . ")");
+ }
+ }
+
+ return \@list;
+}
sub Error {
}
$term = join(" OR ", @list);
},
+ ",anywordssubstr" => sub {
+ $term = join(" OR ", @{GetByWordListSubstr($ff, $v)});
+ },
+ ",allwordssubstr" => sub {
+ $term = join(" AND ", @{GetByWordListSubstr($ff, $v)});
+ },
+ ",nowordssubstr" => sub {
+ my @list = @{GetByWordListSubstr($ff, $v)};
+ if (@list) {
+ $term = "NOT (" . join(" OR ", @list) . ")";
+ }
+ },
",anywords" => sub {
$term = join(" OR ", @{GetByWordList($ff, $v)});
},
<td><SELECT NAME=$type>
};
if ($default{$type} eq "") {
- $default{$type} = "substring";
+ $default{$type} = "allwordssubstr";
}
foreach my $i (["substring", "case-insensitive substring"],
["casesubstring", "case-sensitive substring"],
+ ["allwordssubstr", "all words as substrings"],
+ ["anywordssubstr", "any words as substrings"],
["allwords", "all words"],
["anywords", "any words"],
["regexp", "regular expression"],
["casesubstring", "contains (case-sensitive) substring"],
["substring", "contains (case-insensitive) substring"],
["notsubstring", "does not contain (case-insensitive) substring"],
+ ["allwordssubstr", "all words as (case-insensitive) substrings"],
+ ["anywordssubstr", "any words as (case-insensitive) substrings"],
["regexp", "contains regexp"],
["notregexp", "does not contain regexp"],
["lessthan", "less than"],