예제 #1
0
 /**
  * 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;
 }
예제 #2
0
$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;