diff --git a/database/Config.php b/database/Config.php
index 1f4d169cb57c03730796a7a41fb3f34f39a99270..7df6c1eeaa81881f3744dc12a3da900272c23bd1 100644
--- a/database/Config.php
+++ b/database/Config.php
@@ -11,17 +11,19 @@ class Config
     public $database_options;
 
     public $backend;
+    public $enable_ranking;
 
     public $path_prefix;
 
-    public function __construct(string $path_prefix, string $database_connector, string $username, string $password, string $backend, array $options)
+    public function __construct(string $path_prefix, string $database_connector, string $username, string $password, string $backend, array $options, bool $enable_ranking)
     {
         $this->database_connector = $database_connector;
         $this->username = $username;
         $this->password = $password;
-        $this->database_options = $options;
         $this->path_prefix = $path_prefix;
         $this->backend = $backend;
+        $this->database_options = $options;
+        $this->enable_ranking = $enable_ranking;
     }
 
     public static function createFromGlobals()
@@ -34,8 +36,8 @@ class Config
         $options['timeout'] = (defined('qrs_db_option_timeout') && (null !== qrs_db_option_timeout)) ? qrs_db_option_timeout : 5000;
 
         if (defined('qrs_db_connector') && null !== qrs_db_connector)
-            return new Config(qrs_path_prefix, qrs_db_connector, qrs_db_user, qrs_db_pass, qrs_backend, $options);
+            return new Config(qrs_path_prefix, qrs_db_connector, qrs_db_user, qrs_db_pass, qrs_backend, $options, qrs_enable_ranking);
         else
-            return new Config(qrs_path_prefix, 'pgsql:host=' . qrs_db_host . ';port=' . qrs_db_port . ';dbname=' . qrs_db_name . '', qrs_db_user, qrs_db_pass, qrs_backend, $options);
+            return new Config(qrs_path_prefix, 'pgsql:host=' . qrs_db_host . ';port=' . qrs_db_port . ';dbname=' . qrs_db_name . '', qrs_db_user, qrs_db_pass, qrs_backend, $options, qrs_enable_ranking);
     }
 }
diff --git a/database/Database.php b/database/Database.php
index bb4698a9762202c256ab73b6419e9cd71904709a..32ddab40d583723b7aa09b639196c078012e1ee7 100644
--- a/database/Database.php
+++ b/database/Database.php
@@ -14,20 +14,22 @@ class Database
     private $user;
 
     private $backend;
+    private $enable_ranking;
 
-    private function __construct(string $database_connector, string $username, string $password, string $type, array $options)
+    private function __construct(string $database_connector, string $username, string $password, string $type, array $options, bool $enable_ranking)
     {
-        $this->backend = BackendFactory::create($type, new \PDO($database_connector, $username, $password), $options);
+        $this->backend = BackendFactory::create($type, new \PDO($database_connector, $username, $password), $options, $enable_ranking);
+        $this->enable_ranking = $enable_ranking;
     }
 
     public static function createFromConfig(Config $config): Database
     {
-        return Database::createFromOptions($config->database_connector, $config->username, $config->password, $config->backend, $config->database_options);
+        return Database::createFromOptions($config->database_connector, $config->username, $config->password, $config->backend, $config->database_options, $config->enable_ranking);
     }
 
-    public static function createFromOptions(string $database_connector, string $username, string $password, string $type, array $options): Database
+    public static function createFromOptions(string $database_connector, string $username, string $password, string $type, array $options, bool $enable_ranking): Database
     {
-        return new Database($database_connector, $username, $password, $type, $options);
+        return new Database($database_connector, $username, $password, $type, $options, $enable_ranking);
     }
 
     public function authenticateFromHeader(string $header): bool
@@ -67,10 +69,12 @@ class Database
 
     private function apply_config(\PDOStatement $stmt)
     {
-        $stmt->bindValue(':config_normalization', 4, PDO::PARAM_INT);
+        if ($this->enable_ranking) {
+            $stmt->bindValue(':config_normalization', 4, PDO::PARAM_INT);
+            $stmt->bindValue(':weight_content', 14, PDO::PARAM_INT);
+        }
 
-        $stmt->bindValue(':weight_content', 14, PDO::PARAM_INT);
-        $stmt->bindValue(':weight_type', 16, PDO::PARAM_INT);
+        $stmt->bindValue(':weight_type', 32, PDO::PARAM_INT);
         $stmt->bindValue(':weight_time', 1, PDO::PARAM_INT);
     }
 
diff --git a/database/backends/BackendFactory.php b/database/backends/BackendFactory.php
index 2c44f177db085fd5fe0fcc541f9fd46b7c7acc06..ee45ec1fc70f51578d565660c41f7049e6802f48 100644
--- a/database/backends/BackendFactory.php
+++ b/database/backends/BackendFactory.php
@@ -8,13 +8,13 @@ require_once 'SQLiteSmartBackend.php';
 class BackendFactory
 {
 
-    public static function create(string $type, \PDO $db, array $options): Backend
+    public static function create(string $type, \PDO $db, array $options, $enable_ranking): Backend
     {
         switch ($type) {
             case 'pgsql-smart':
-                return new PostgresSmartBackend($db, $options);
+                return new PostgresSmartBackend($db, $options, $enable_ranking);
             case 'sqlite-smart':
-                return new SQLiteSmartBackend($db, $options);
+                return new SQLiteSmartBackend($db, $options, $enable_ranking);
             default:
                 return null;
         }
diff --git a/database/backends/PostgresSmartBackend.php b/database/backends/PostgresSmartBackend.php
index 99f648348600fd162a902aea2d90b1ce85c1c606..9d14e741060a572693229941c1332d93507ba49a 100644
--- a/database/backends/PostgresSmartBackend.php
+++ b/database/backends/PostgresSmartBackend.php
@@ -8,13 +8,15 @@ class PostgresSmartBackend implements Backend
 {
     private $db;
     private $options;
+    private $enable_ranking;
 
-    function __construct(\PDO $db, array $options)
+    function __construct(\PDO $db, array $options, bool $enable_ranking)
     {
         $this->db = $db;
         $timeout = $options["timeout"];
         $this->db->exec("SET statement_timeout = $timeout;");
         $this->options = $options;
+        $this->enable_ranking = $enable_ranking;
     }
 
     public function findUser(): \PDOStatement
@@ -31,9 +33,36 @@ class PostgresSmartBackend implements Backend
         return array_key_exists('tsqueryfunction', $this->options) ? $this->options['tsqueryfunction'] : "plainto_tsquery('english', :query)";
     }
 
+    private function rankingFunction(): string
+    {
+        if ($this->enable_ranking) {
+            return "(
+                      (ts_rank_cd(tsv, query, :config_normalization) ^ :weight_content) *
+                      ((CASE
+                        WHEN TYPE IN (1, 4) THEN 1.0
+                        WHEN TYPE IN (2, 1024, 2048, 4096, 16384) THEN 0.8
+                        WHEN TYPE IN (32, 64, 128, 256, 512, 32768, 65536) THEN 0.6
+                        WHEN TYPE IN (8, 16, 8192, 131072) THEN 0.4
+                        ELSE 0.2 END) ^ :weight_type) *
+                      ((1 / (EXTRACT(EPOCH FROM CURRENT_TIMESTAMP) - EXTRACT(EPOCH FROM time))) ^ :weight_time)
+                    )";
+        } else {
+            return "(
+                      ((CASE
+                        WHEN TYPE IN (1, 4) THEN 1.0
+                        WHEN TYPE IN (2, 1024, 2048, 4096, 16384) THEN 0.8
+                        WHEN TYPE IN (32, 64, 128, 256, 512, 32768, 65536) THEN 0.6
+                        WHEN TYPE IN (8, 16, 8192, 131072) THEN 0.4
+                        ELSE 0.2 END) ^ :weight_type) *
+                      ((1 / (EXTRACT(EPOCH FROM CURRENT_TIMESTAMP) - EXTRACT(EPOCH FROM time))) ^ :weight_time)
+                    )";
+        }
+    }
+
     public function findInBuffers(): \PDOStatement
     {
         $tsQueryFunction = $this->tsQueryFunction();
+        $rankingFunction = $this->rankingFunction();
         return $this->db->prepare("
             SELECT
               ranked_messages.bufferid,
@@ -70,16 +99,7 @@ class PostgresSmartBackend implements Backend
                     backlog.time,
                     backlog.message,
                     query,
-                    (
-                      (ts_rank_cd(tsv, query, :config_normalization) ^ :weight_content) *
-                      ((CASE
-                        WHEN TYPE IN (1, 4) THEN 1.0
-                        WHEN TYPE IN (2, 1024, 2048, 4096, 16384) THEN 0.8
-                        WHEN TYPE IN (32, 64, 128, 256, 512, 32768, 65536) THEN 0.6
-                        WHEN TYPE IN (8, 16, 8192, 131072) THEN 0.4
-                        ELSE 0.2 END) ^ :weight_type) *
-                      ((1 / (EXTRACT(EPOCH FROM CURRENT_TIMESTAMP) - EXTRACT(EPOCH FROM TIME))) ^ :weight_time)
-                    ) AS rank_value
+                    $rankingFunction AS rank_value
                   FROM
                     backlog
                     JOIN buffer ON backlog.bufferid = buffer.bufferid
@@ -128,6 +148,7 @@ class PostgresSmartBackend implements Backend
     public function findInBuffer(): \PDOStatement
     {
         $tsQueryFunction = $this->tsQueryFunction();
+        $rankingFunction = $this->rankingFunction();
         return $this->db->prepare("
             SELECT
               matching_messages.messageid,
@@ -145,16 +166,7 @@ class PostgresSmartBackend implements Backend
                  backlog.time,
                  backlog.message,
                  query,
-                 (
-                   (ts_rank_cd(tsv, query, :config_normalization) ^ :weight_content) *
-                   ((CASE
-                     WHEN TYPE IN (1, 4) THEN 1.0
-                     WHEN TYPE IN (2, 1024, 2048, 4096, 16384) THEN 0.8
-                     WHEN TYPE IN (32, 64, 128, 256, 512, 32768, 65536) THEN 0.6
-                     WHEN TYPE IN (8, 16, 8192, 131072) THEN 0.4
-                     ELSE 0.2 END) ^ :weight_type) *
-                   ((1 / (EXTRACT(EPOCH FROM CURRENT_TIMESTAMP) - EXTRACT(EPOCH FROM TIME))) ^ :weight_time)
-                 ) AS rank_value
+                 $rankingFunction AS rank_value
                FROM
                  backlog
                  JOIN buffer ON backlog.bufferid = buffer.bufferid
diff --git a/database/backends/SQLiteSmartBackend.php b/database/backends/SQLiteSmartBackend.php
index fcac6e49846daa442afb3bbccd8e054f5e8c292e..611b6a723139f40df39849ad1d218c6a44147b06 100644
--- a/database/backends/SQLiteSmartBackend.php
+++ b/database/backends/SQLiteSmartBackend.php
@@ -9,7 +9,7 @@ class SQLiteSmartBackend implements Backend
     private $db;
     private $options;
 
-    function __construct(\PDO $db, array $options)
+    function __construct(\PDO $db, array $options, $enable_ranking)
     {
         $this->db = $db;
         $this->options = $options;
diff --git a/qrs_config.default.php b/qrs_config.default.php
index 5bc6425500a6badc98607aaa24349c36e9d1bff0..fd8bc6bf0d1c9b300a44e0a585dc82e2d1d85189 100644
--- a/qrs_config.default.php
+++ b/qrs_config.default.php
@@ -14,5 +14,6 @@ define('qrs_db_option_tsqueryfunction', "plainto_tsquery('english', :query)");
 define('qrs_db_option_timeout', 5000);
 
 define('qrs_backend', 'pgsql-smart');
+define('qrs_enable_ranking', false);
 
 define('qrs_path_prefix', '');