Support subscriptions to redirect URLs
[phinde.git] / src / phinde / Elasticsearch.php
index 6c90480475d152a361ea0eb645dfb842265310a7..fd60f95a53ebfe8051825ba941b502c028c285c1 100644 (file)
@@ -92,7 +92,7 @@ class Elasticsearch
             $query      = trim(str_replace($matches[0], '', $query));
             $qMust[]    = array(
                 'range' => array(
-                    'modate' => array(
+                    'status.modate' => array(
                         'gt' => $dateAfter . '||/d',
                     )
                 )
@@ -103,7 +103,7 @@ class Elasticsearch
             $query      = trim(str_replace($matches[0], '', $query));
             $qMust[]    = array(
                 'range' => array(
-                    'modate' => array(
+                    'status.modate' => array(
                         'lt' => $dateBefore . '||/d',
                     )
                 )
@@ -114,7 +114,7 @@ class Elasticsearch
             $query      = trim(str_replace($matches[0], '', $query));
             $qMust[]    = array(
                 'range' => array(
-                    'modate' => array(
+                    'status.modate' => array(
                         'gte' => $dateExact . '||/d',
                         'lte' => $dateExact . '||/d',
                     )
@@ -122,6 +122,11 @@ class Elasticsearch
             );
         }
 
+        if (strpos($query, '/') !== false && strpos($query, '"') === false) {
+            //add quotes when there is a slash and no quotes
+            // https://stackoverflow.com/questions/31963643/escaping-forward-slashes-in-elasticsearch
+            $query = '"' . $query . '"';
+        }
         $qMust[] = array(
             'query_string' => array(
                 'default_field' => '_all',
@@ -135,6 +140,9 @@ class Elasticsearch
             )
         );
 
+        if ($sort == '' && $GLOBALS['phinde']['defaultSort'] == 'date') {
+            $sort = 'date';
+        }
         if ($sort == 'date') {
             $sortCfg = array('status.modate' => array('order' => 'desc'));
         } else {