Exemple #1
0
 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));
 }
Exemple #2
0
 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));
 }
Exemple #3
0
 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());
 }
Exemple #4
0
 /**
  * @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');
Exemple #6
0
 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);
 }
Exemple #7
0
/**
 * @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);
}
Exemple #8
0
 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());
}