]> git.wh0rd.org Git - tt-rss.git/commitdiff
add some fts stuff
authorAndrew Dolgov <noreply@fakecake.org>
Tue, 4 Aug 2015 06:53:43 +0000 (09:53 +0300)
committerAndrew Dolgov <noreply@fakecake.org>
Tue, 4 Aug 2015 06:53:43 +0000 (09:53 +0300)
include/functions2.php

index df876851761943fb48feace2af7bb88956ff1dfe..206673b7d2af8c470de43abf865a6c9418ceeb11 100644 (file)
 
        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, " ");
                $query_keywords = array();
                $search_words = array();
+               $search_query_leftover = "";
 
                foreach ($keywords as $k) {
                        if (strpos($k, "-") === 0) {
 
                                        array_push($query_keywords, "(".SUBSTRING_FOR_DATE."(updated,1,LENGTH('$k')) $not = '$k')");
                                } else {
-                                       array_push($query_keywords, "(UPPER(ttrss_entries.title) $not LIKE UPPER('%$k%')
-                                                       OR UPPER(ttrss_entries.content) $not LIKE UPPER('%$k%'))");
+                                       $search_query_leftover .= $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);
 
                return array($search_query_part, $search_words);