add some fts stuff

This commit is contained in:
Andrew Dolgov 2015-08-04 09:53:43 +03:00
parent 978eb54582
commit b4f544d389
1 changed files with 21 additions and 3 deletions

View File

@ -282,11 +282,17 @@
function search_to_sql($search) { function search_to_sql($search) {
$search_query_part = ""; /*if (DB_TYPE == "pgsql") {
$search_escaped = db_escape_string($search);
return array("(to_tsvector('english', SUBSTR(ttrss_entries.title, 0, 200) || ' ' || SUBSTR(content, 0, 800))
@@ to_tsquery('$search_escaped'))", explode(" ", $search));
}*/
$keywords = str_getcsv($search, " "); $keywords = str_getcsv($search, " ");
$query_keywords = array(); $query_keywords = array();
$search_words = array(); $search_words = array();
$search_query_leftover = "";
foreach ($keywords as $k) { foreach ($keywords as $k) {
if (strpos($k, "-") === 0) { if (strpos($k, "-") === 0) {
@ -384,14 +390,26 @@
array_push($query_keywords, "(".SUBSTRING_FOR_DATE."(updated,1,LENGTH('$k')) $not = '$k')"); array_push($query_keywords, "(".SUBSTRING_FOR_DATE."(updated,1,LENGTH('$k')) $not = '$k')");
} else { } else {
array_push($query_keywords, "(UPPER(ttrss_entries.title) $not LIKE UPPER('%$k%') $search_query_leftover .= $k . " ";
OR UPPER(ttrss_entries.content) $not LIKE UPPER('%$k%'))");
if (!$not) array_push($search_words, $k); if (!$not) array_push($search_words, $k);
/*array_push($query_keywords, "(UPPER(ttrss_entries.title) $not LIKE UPPER('%$k%')
OR UPPER(ttrss_entries.content) $not LIKE UPPER('%$k%'))");
if (!$not) array_push($search_words, $k);*/
} }
} }
} }
if ($search_query_leftover) {
$search_query_leftover = db_escape_string($search_query_leftover);
array_push($query_keywords,
"(to_tsvector('simple', SUBSTR(ttrss_entries.title, 0, 200) || ' ' || SUBSTR(content, 0, 800))
@@ to_tsquery('$search_query_leftover'))");
}
$search_query_part = implode("AND", $query_keywords); $search_query_part = implode("AND", $query_keywords);
return array($search_query_part, $search_words); return array($search_query_part, $search_words);