$r->send();
}
- public function search($query, $filters, $page, $perPage)
+ public function search($query, $filters, $site, $page, $perPage, $sort)
{
+ if ($sort == 'date') {
+ $sortCfg = array('modate' => array('order' => 'desc'));
+ } else {
+ $sortCfg = array();
+ }
+
$r = new Elasticsearch_Request(
$this->baseUrl . 'document/_search',
\HTTP_Request2::METHOD_GET
array(
'query_string' => array(
'default_field' => '_all',
+ 'default_operator' => 'AND',
'query' => $query
)
),
)
)
),
+ 'highlight' => array(
+ 'pre_tags' => array('<em class="hl">'),
+ 'order' => 'score',
+ 'encoder' => 'html',
+ 'fields' => array(
+ 'title' => array(
+ 'require_field_match' => false,
+ 'number_of_fragments' => 0,
+ ),
+ 'url' => array(
+ 'require_field_match' => false,
+ 'number_of_fragments' => 0,
+ ),
+ 'text' => array(
+ 'require_field_match' => false,
+ 'number_of_fragments' => 1,
+ ),
+ )
+ ),
'aggregations' => array(
'tags' => array(
'terms' => array(
),
'from' => $page * $perPage,
'size' => $perPage,
- 'sort' => array(
- //array('modate' => array('order' => 'desc'))
- )
+ 'sort' => $sortCfg,
);
foreach ($filters as $type => $value) {
$doc['query']['bool']['must'][] = array(
)
);
}
+ if ($site != '') {
+ $doc['query']['bool']['must'][] = array(
+ 'prefix' => array(
+ 'schemalessUrl' => array(
+ 'value' => $site
+ )
+ )
+ );
+ }
//unset($doc['_source']);
//ini_set('xdebug.var_display_max_depth', 10);
- //return json_decode(json_encode($doc));
+ //echo json_encode($doc);die();
$r->setBody(json_encode($doc));
$res = $r->send();
return json_decode($res->getBody());