$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)) {
$query = trim(str_replace($matches[0], '', $query));
$qMust[] = array(
'range' => array(
- 'modate' => array(
+ 'status.modate' => array(
'gt' => $dateAfter . '||/d',
)
)
$query = trim(str_replace($matches[0], '', $query));
$qMust[] = array(
'range' => array(
- 'modate' => array(
+ 'status.modate' => array(
'lt' => $dateBefore . '||/d',
)
)
$query = trim(str_replace($matches[0], '', $query));
$qMust[] = array(
'range' => array(
- 'modate' => array(
+ 'status.modate' => array(
'gte' => $dateExact . '||/d',
'lte' => $dateExact . '||/d',
)
);
}
+ 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',
)
);
+ if ($sort == '' && $GLOBALS['phinde']['defaultSort'] == 'date') {
+ $sort = 'date';
+ }
if ($sort == 'date') {
$sortCfg = array('status.modate' => array('order' => 'desc'));
} else {