예제 #1
0
파일: engine.php 프로젝트: janeklb/moodle
 /**
  * Prepares a new query by setting the query, start offset and rows to return.
  *
  * @param SolrQuery $query
  * @param object    $q Containing query and filters.
  */
 protected function set_query($query, $q)
 {
     // Set hightlighting.
     $query->setHighlight(true);
     foreach ($this->highlightfields as $field) {
         $query->addHighlightField($field);
     }
     $query->setHighlightFragsize(static::FRAG_SIZE);
     $query->setHighlightSimplePre(self::HIGHLIGHT_START);
     $query->setHighlightSimplePost(self::HIGHLIGHT_END);
     $query->setHighlightMergeContiguous(true);
     $query->setQuery($q);
     // A reasonable max.
     $query->setRows(static::QUERY_SIZE);
 }
예제 #2
0
 /**
  * Prepares a new query by setting the query, start offset and rows to return.
  * @param SolrQuery $query
  * @param object $q Containing query and filters.
  */
 protected function set_query($query, $q)
 {
     // Set hightlighting.
     $query->setHighlight(true);
     foreach ($this->highlightfields as $field) {
         $query->addHighlightField($field);
     }
     $query->setHighlightFragsize(static::FRAG_SIZE);
     $query->setHighlightSimplePre('__');
     $query->setHighlightSimplePost('__');
     $query->setQuery($q);
     // A reasonable max.
     $query->setRows(\core_search\manager::MAX_RESULTS);
 }
<?php

$query = new SolrQuery();
$query->setHighlight(0);
$query->addHighlightField('a')->addHighlightField('a')->addHighlightField('a');
$query->removeHighlightField('a')->removeHighlightField('a')->removeHighlightField('a');
$query->setHighlightSnippets(4)->setHighlightSnippets(5, 'june');
$query->setHighlightFragsize(41)->setHighlightFragsize(52, 'june');
$query->setHighlightMergeContiguous(true)->setHighlightMergeContiguous(false, 'june');
$query->setHighlightRequireFieldMatch(true);
$query->setHighlightMaxAnalyzedChars(44)->setHighlightMaxAnalyzedChars(53);
$query->setHighlightAlternateField('pizza')->setHighlightAlternateField('bread', 'june');
$query->setHighlightAlternateField('blue')->setHighlightAlternateField('red', 'june');
$query->setHighlightAlternateField('a')->setHighlightAlternateField('b', 'june');
$query->setHighlightMaxAlternateFieldLength(300)->setHighlightMaxAlternateFieldLength(335, 'june');
$query->setHighlightFormatter('F')->setHighlightFormatter('G', 'june');
$query->setHighlightSimplePre('OO')->setHighlightSimplePre('PP', 'june');
$query->setHighlightSimplePost('ZZ')->setHighlightSimplePost('YY', 'june');
$query->setHighlightFragmenter('gap')->setHighlightFragmenter('space', 'june');
$query->setHighlightUsePhraseHighlighter(false);
$query->setHighlightHighlightMultiTerm(1);
$query->setHighlightRegexSlop(0.0025);
$query->setHighlightRegexPattern("israel")->setHighlightRegexPattern("ekpo");
$query->setHighlightRegexMaxAnalyzedChars(444)->setHighlightRegexMaxAnalyzedChars(5.0);
echo $query;
echo "\n";
예제 #4
0
 /**
  * Выполнить поиск
  *
  * @param $query
  * @param array $params
  * @return CSolrQueryResults
  */
 public static function search($query, $params = array())
 {
     $solrQuery = new SolrQuery();
     $solrQuery->setQuery("doc_body:*" . $query . "*");
     if (mb_strpos($query, " ") !== false) {
         $solrQuery->setQuery('doc_body:"*' . $query . '*"');
     }
     foreach ($params as $key => $value) {
         if ($key == "_highlight_") {
             $solrQuery->addHighlightField($value);
             $solrQuery->setHighlight(true);
             $solrQuery->setHighlightSimplePre("<em>");
             $solrQuery->setHighlightSimplePost("</em>");
         } elseif (is_array($value)) {
             $solrQuery->addFilterQuery($key . ":" . implode(",", $value));
         } else {
             $solrQuery->addFilterQuery($key . ":" . $value);
         }
     }
     try {
         $query_response = self::getClient()->query($solrQuery);
     } catch (Exception $e) {
         echo $e->getMessage();
         var_dump(self::getClient()->getDebug());
         break;
     }
     $response = $query_response->getResponse();
     $result = new CSolrQueryResults($response);
     return $result;
 }