示例#1
0
if ($isAllDigits) {
    $d = Definition::get_by_id($cuv);
    if ($d) {
        util_redirect(util_getWwwRoot() . "definitie/{$d->lexicon}/{$d->id}" . ($xml ? '/xml' : ''));
    }
}
if ($text) {
    $searchType = SEARCH_FULL_TEXT;
    if (Lock::exists(LOCK_FULL_TEXT_INDEX)) {
        smarty_assign('lockExists', true);
        $definitions = array();
    } else {
        $words = preg_split('/ +/', $cuv);
        list($properWords, $stopWords) = StringUtil::separateStopWords($words, $hasDiacritics);
        smarty_assign('stopWords', $stopWords);
        $defIds = Definition::searchFullText($properWords, $hasDiacritics);
        smarty_assign('numResults', count($defIds));
        // Show at most 50 definitions;
        $defIds = array_slice($defIds, 0, 500);
        // Load definitions in the given order
        $definitions = array();
        foreach ($defIds as $id) {
            if ($res = Definition::get_by_id($id)) {
                $definitions[] = $res;
            }
        }
        if (!count($defIds)) {
            FlashMessage::add('Nicio definiție nu conține toate cuvintele căutate.');
        }
    }
    $searchResults = SearchResult::mapDefinitionArray($definitions);
示例#2
0
    $isAllDigits = $arr[2];
}
if ($isAllDigits) {
    $d = Definition::get_by_id($cuv);
    if ($d) {
        util_redirect(util_getWwwRoot() . "definitie/{$d->lexicon}/{$d->id}" . ($xml ? '/xml' : ''));
    }
}
if ($text) {
    $searchType = SEARCH_FULL_TEXT;
    if (Lock::exists(LOCK_FULL_TEXT_INDEX)) {
        SmartyWrap::assign('lockExists', true);
        $definitions = array();
    } else {
        $words = preg_split('/ +/', $cuv);
        list($defIds, $stopWords) = Definition::searchFullText($words, $hasDiacritics, $sourceId);
        SmartyWrap::assign('numResults', count($defIds));
        SmartyWrap::assign('stopWords', $stopWords);
        // Show at most 500 definitions;
        $defIds = array_slice($defIds, 0, LIMIT_FULLTEXT_DISPLAY);
        // Load definitions in the given order
        $definitions = array();
        foreach ($defIds as $id) {
            $definitions[] = Definition::get_by_id($id);
        }
        if (!count($defIds)) {
            FlashMessage::add('Nicio definiție nu conține toate cuvintele căutate.');
        }
        Definition::highlight($words, $definitions);
    }
    $searchResults = SearchResult::mapDefinitionArray($definitions);