/** * 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); }
/** * 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";
/** * Выполнить поиск * * @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; }