Fix date searches
[phinde.git] / src / phinde / Elasticsearch.php
index 9babfee21324988fbde6ac0f88e7b763d570594b..5ca2180c8b66a936d731f8e34691af2385a95174 100644 (file)
@@ -58,6 +58,20 @@ class Elasticsearch
         $r->send();
     }
 
+    public function getIndexStatus()
+    {
+        $r = new Elasticsearch_Request(
+            $this->baseUrl . '_stats/docs,store',
+            \HTTP_Request2::METHOD_GET
+        );
+        $res = $r->send();
+        $data = json_decode($res->getBody());
+        return array(
+            'documents' => $data->_all->total->docs->count,
+            'size'      => $data->_all->total->store->size_in_bytes,
+        );
+    }
+
     public function search($query, $filters, $site, $page, $perPage, $sort)
     {
         if (preg_match_all('#nick:([^ ]*)#', $query, $matches)) {
@@ -78,7 +92,7 @@ class Elasticsearch
             $query      = trim(str_replace($matches[0], '', $query));
             $qMust[]    = array(
                 'range' => array(
-                    'modate' => array(
+                    'status.modate' => array(
                         'gt' => $dateAfter . '||/d',
                     )
                 )
@@ -89,7 +103,7 @@ class Elasticsearch
             $query      = trim(str_replace($matches[0], '', $query));
             $qMust[]    = array(
                 'range' => array(
-                    'modate' => array(
+                    'status.modate' => array(
                         'lt' => $dateBefore . '||/d',
                     )
                 )
@@ -100,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',
                     )
@@ -121,6 +135,9 @@ class Elasticsearch
             )
         );
 
+        if ($sort == '' && $GLOBALS['phinde']['defaultSort'] == 'date') {
+            $sort = 'date';
+        }
         if ($sort == 'date') {
             $sortCfg = array('status.modate' => array('order' => 'desc'));
         } else {