X-Git-Url: https://git.cweiske.de/phinde.git/blobdiff_plain/08fc60226f224de87d665aa7c55b6eaa9f66d768..c32d1b6ffe81afb36fdcaebe0254ad191b72bff6:/src/phinde/Elasticsearch.php diff --git a/src/phinde/Elasticsearch.php b/src/phinde/Elasticsearch.php index 069cf1f..fd60f95 100644 --- a/src/phinde/Elasticsearch.php +++ b/src/phinde/Elasticsearch.php @@ -58,14 +58,18 @@ class Elasticsearch $r->send(); } - public function countDocuments() + public function getIndexStatus() { $r = new Elasticsearch_Request( - $this->baseUrl . 'document/_count', + $this->baseUrl . '_stats/docs,store', \HTTP_Request2::METHOD_GET ); $res = $r->send(); - return json_decode($res->getBody())->count; + $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) @@ -88,7 +92,7 @@ class Elasticsearch $query = trim(str_replace($matches[0], '', $query)); $qMust[] = array( 'range' => array( - 'modate' => array( + 'status.modate' => array( 'gt' => $dateAfter . '||/d', ) ) @@ -99,7 +103,7 @@ class Elasticsearch $query = trim(str_replace($matches[0], '', $query)); $qMust[] = array( 'range' => array( - 'modate' => array( + 'status.modate' => array( 'lt' => $dateBefore . '||/d', ) ) @@ -110,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', ) @@ -118,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', @@ -131,6 +140,9 @@ class Elasticsearch ) ); + if ($sort == '' && $GLOBALS['phinde']['defaultSort'] == 'date') { + $sort = 'date'; + } if ($sort == 'date') { $sortCfg = array('status.modate' => array('order' => 'desc')); } else {