function build(Search_Query_Order $order) { $component = '_score'; $field = $order->getField(); if ($field !== Search_Query_Order::FIELD_SCORE) { if ($order->getMode() == Search_Query_Order::MODE_NUMERIC) { $component = array("{$field}.nsort" => $order->getOrder()); } else { $component = array("{$field}.sort" => $order->getOrder()); } } return array("sort" => array($component)); }
function build(Search_Query_Order $order) { $component = '_score'; $field = $order->getField(); if ($field !== Search_Query_Order::FIELD_SCORE) { if ($order->getMode() == Search_Query_Order::MODE_NUMERIC) { $component = array("_script" => array("script" => "doc['{$field}'].value * 1", "type" => "number", "order" => $order->getOrder())); } else { $component = array($field => $order->getOrder()); } } return array("sort" => array($component)); }
function testSpecifiedOrder() { $index = new Search_Index_Memory(); $query = new Search_Query(); $query->setOrder(Search_Query_Order::recentChanges()); $query->search($index); $this->assertEquals(Search_Query_Order::recentChanges(), $index->getLastOrder()); }
/** * @dataProvider sortMatches */ function testParse($mode, $field, $order, $type) { $obtained = Search_Query_Order::parse($mode); $this->assertEquals(new Search_Query_Order($field, $type, $order), $obtained); }
$name = htmlentities($c['name'], ENT_QUOTES, 'UTF-8'); $perms = Perms::get('category', $c['categId']); $add = $perms->add_object ? '<span class="control categ-add"></span>' : ''; $remove = $perms->remove_object ? '<span class="control categ-remove"></span>' : ''; $body = <<<BODY {$add} {$remove} <span class="object-count">{$c['objects']}</span> <a class="catname" href="{$url}" data-categ="{$c['categId']}">{$name}</a> BODY; $tree_nodes[] = array('id' => $c['categId'], 'parent' => $c['parentId'], 'data' => $body); } $tree_nodes[] = array('id' => 'orphan', 'parent' => '0', 'data' => '<span class="object-count">' . $orphans['cant'] . '</span><a class="catname" href="tiki-edit_categories.php?filter~categories=orphan"><em>' . tr('Orphans') . '</em></a>'); $tm = new BrowseTreeMaker('categ'); $res = $tm->make_tree(0, $tree_nodes); $smarty->assign('tree', $res); // }}} $filter = isset($_REQUEST['filter']) ? $_REQUEST['filter'] : array(); $smarty->assign('filter', $filter); if (count($filter)) { $unifiedsearchlib = TikiLib::lib('unifiedsearch'); $query = $unifiedsearchlib->buildQuery($filter); if (isset($_REQUEST['sort_mode']) && ($order = Search_Query_Order::parse($_REQUEST['sort_mode']))) { $query->setOrder($order); } $result = $query->search($unifiedsearchlib->getIndex()); $smarty->assign('result', $result); } // }}} $smarty->assign('mid', 'tiki-edit_categories.tpl'); $smarty->display('tiki.tpl');
function search(Search_Index_Interface $index) { if ($this->sortOrder) { $sortOrder = $this->sortOrder; } else { $sortOrder = Search_Query_Order::getDefault(); } if ($this->weightCalculator) { $this->expr->walk(array($this->weightCalculator, 'calculate')); } return $index->find($this->expr, $sortOrder, $this->start, $this->count); }
/** * @param $filter * @param $offset * @param $maxRecords * @return mixed */ function tiki_searchindex_get_results($filter, $postfilter, $offset, $maxRecords) { global $prefs; $unifiedsearchlib = TikiLib::lib('unifiedsearch'); $query = new Search_Query(); $unifiedsearchlib->initQueryBase($query); $query = $unifiedsearchlib->buildQuery($filter, $query); $query->filterContent('y', 'searchable'); if (count($postfilter)) { $unifiedsearchlib->buildQuery($postfilter, $query->getPostFilter()); } if (isset($_REQUEST['sort_mode']) && ($order = Search_Query_Order::parse($_REQUEST['sort_mode']))) { $query->setOrder($order); } if ($prefs['storedsearch_enabled'] == 'y' && !empty($_POST['storeAs'])) { $storedsearch = TikiLib::lib('storedsearch'); $storedsearch->storeUserQuery($_POST['storeAs'], $query); TikiLib::lib('smarty')->assign('display_msg', tr('Your query was stored.')); } $unifiedsearchlib->initQueryPermissions($query); $query->setRange($offset, $maxRecords); if ($prefs['feature_search_stats'] == 'y') { $stats = TikiLib::lib('searchstats'); foreach ($query->getTerms() as $term) { $stats->register_term_hit($term); } } if ($prefs['search_use_facets'] == 'y') { $provider = $unifiedsearchlib->getFacetProvider(); foreach ($provider->getFacets() as $facet) { $query->requestFacet($facet); } } if ($prefs['unified_highlight_results'] === 'y') { $query->applyTransform(new \Search\ResultSet\UrlHighlightTermsTransform($query->getTerms())); } try { if ($prefs['federated_enabled'] == 'y' && !empty($filter['content'])) { $fed = TikiLib::lib('federatedsearch'); $fed->augmentSimpleQuery($query, $filter['content']); } $resultset = $query->search($unifiedsearchlib->getIndex()); return $resultset; } catch (Search_Elastic_TransportException $e) { TikiLib::lib('errorreport')->report('Search functionality currently unavailable.'); } catch (Exception $e) { TikiLib::lib('errorreport')->report($e->getMessage()); } return new Search_ResultSet(array(), 0, 0, -1); }
function getSortOrder() { if ($this->sortOrder) { return $this->sortOrder; } else { return Search_Query_Order::getDefault(); } }
/** * @param $filter * @param $offset * @param $maxRecords * @return mixed */ function tiki_searchindex_get_results($filter, $offset, $maxRecords) { global $prefs; $unifiedsearchlib = TikiLib::lib('unifiedsearch'); $query = $unifiedsearchlib->buildQuery($filter); $query->setRange($offset, $maxRecords); $query->filterContent('y', 'searchable'); if (isset($_REQUEST['sort_mode']) && ($order = Search_Query_Order::parse($_REQUEST['sort_mode']))) { $query->setOrder($order); } if ($prefs['feature_search_stats'] == 'y') { $stats = TikiLib::lib('searchstats'); foreach ($query->getTerms() as $term) { $stats->register_term_hit($term); } } if ($prefs['search_use_facets'] == 'y') { $provider = $unifiedsearchlib->getFacetProvider(); foreach ($provider->getFacets() as $facet) { $query->requestFacet($facet); } } try { return $query->search($unifiedsearchlib->getIndex()); } catch (Search_Elastic_TransportException $e) { TikiLib::lib('errorreport')->report('Search functionality currently unavailable.'); } catch (Exception $e) { TikiLib::lib('errorreport')->report($e->getMessage()); } return new Search_ResultSet(array(), 0, 0, -1); }
/** * @param $filter * @param $offset * @param $maxRecords * @return mixed */ function tiki_searchindex_get_results($filter, $offset, $maxRecords) { global $prefs; $unifiedsearchlib = TikiLib::lib('unifiedsearch'); $query = $unifiedsearchlib->buildQuery($filter); $query->setRange($offset, $maxRecords); if (isset($_REQUEST['sort_mode']) && ($order = Search_Query_Order::parse($_REQUEST['sort_mode']))) { $query->setOrder($order); } if ($prefs['feature_search_stats'] == 'y') { $stats = TikiLib::lib('searchstats'); foreach ($query->getTerms() as $term) { $stats->register_term_hit($term); } } if ($prefs['search_use_facets'] == 'y') { $provider = $unifiedsearchlib->getFacetProvider(); foreach ($provider->getFacets() as $facet) { $query->requestFacet($facet); } } return $query->search($unifiedsearchlib->getIndex()); }
function tiki_searchindex_get_results($filter, $offset, $maxRecords) { global $unifiedsearchlib; $query = $unifiedsearchlib->buildQuery($filter); $query->setRange($offset, $maxRecords); if (isset($_REQUEST['sort_mode']) && $order = Search_Query_Order::parse($_REQUEST['sort_mode'])) { $query->setOrder($order); } return $query->search($unifiedsearchlib->getIndex()); }