/** * Enter description here... * * @param string $query * @return array */ public function query($query) { $results = array(); $queryDiscussion = stripos($query, 'discussion') !== false; $queryContent = stripos($query, 'content') !== false; $query = Zend_Search_Lucene_Search_QueryParser::parse($query); $hits = $this->lucene->find($query); foreach ($hits as $hit) { $document = $hit->getDocument(); $document_id = PHPLuceneIndexer::stringToLong($document->DocumentID); /* $coreText = ''; if ($queryContent) { $coreText .= $document->Content; } if ($queryDiscussion) { $coreText .= $document->Discussion; } $content = $query->highlightMatches($coreText); */ $teaser = $document->Summary; $content = $query->highlightMatches($teaser); $title = $document->Title; $score = $hit->score; // avoid adding duplicates. If it is in already, it has higher priority. if (!array_key_exists($document_id, $results) || $score > $results[$document_id]->Score) { $item = new DocumentResultItem($document_id, $score, $title, $content); $item = new QueryResultItem($document_id, $score, $title, $content); if ($item->CanBeReadByUser) { $results[$document_id] = $item; } } } return $results; }
$sure = false; $indexall = false; if ($argc > 0) { foreach ($argv as $arg) { switch (strtolower($arg)) { case 'positive': $sure = true; break; case 'indexall': $indexall = true; break; case 'help': print "Usage: recreateIndex.php [positive] [indexall]\n"; exit; } } } if (!$sure) { print "* " . _kt("Are you sure you want to do this? Add 'positive' as a parameter to continue.") . "\n"; exit; } require_once 'indexing/indexerCore.inc.php'; require_once 'indexing/indexers/PHPLuceneIndexer.inc.php'; PHPLuceneIndexer::createIndex(); print "\n* " . _kt("The lucene index has been recreated.") . "\n"; if ($indexall) { PHPLuceneIndexer::indexAll(); print "\n* " . _kt("All documents are scheduled for indexing.") . "\n"; } print _kt("Done.") . "\n"; exit;