Explorar o código

Zend_Search_Lucene: require_unce usage redesign. ZF-8174 (ZF-991, ZF-2456, ZF-5379)

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@18920 44c647ce-9c0f-0410-b52a-842ac1e357ba
alexander %!s(int64=16) %!d(string=hai) anos
pai
achega
1f0de3bdc9
Modificáronse 24 ficheiros con 235 adicións e 104 borrados
  1. 47 46
      library/Zend/Search/Lucene.php
  2. 23 25
      library/Zend/Search/Lucene/Analysis/Analyzer.php
  3. 11 0
      library/Zend/Search/Lucene/Analysis/Analyzer/Common.php
  4. 0 1
      library/Zend/Search/Lucene/Analysis/TokenFilter.php
  5. 6 0
      library/Zend/Search/Lucene/Document/Html.php
  6. 1 0
      library/Zend/Search/Lucene/Document/OpenXml.php
  7. 17 6
      library/Zend/Search/Lucene/Index/SegmentInfo.php
  8. 9 2
      library/Zend/Search/Lucene/Index/SegmentWriter.php
  9. 9 3
      library/Zend/Search/Lucene/Index/SegmentWriter/DocumentWriter.php
  10. 3 3
      library/Zend/Search/Lucene/Index/SegmentWriter/StreamWriter.php
  11. 1 1
      library/Zend/Search/Lucene/Index/TermsPriorityQueue.php
  12. 13 0
      library/Zend/Search/Lucene/Interface.php
  13. 5 4
      library/Zend/Search/Lucene/MultiSearcher.php
  14. 3 0
      library/Zend/Search/Lucene/Search/Query/Fuzzy.php
  15. 6 0
      library/Zend/Search/Lucene/Search/Query/Preprocessing/Fuzzy.php
  16. 7 0
      library/Zend/Search/Lucene/Search/Query/Preprocessing/Phrase.php
  17. 12 0
      library/Zend/Search/Lucene/Search/Query/Preprocessing/Term.php
  18. 3 0
      library/Zend/Search/Lucene/Search/Query/Range.php
  19. 3 0
      library/Zend/Search/Lucene/Search/Query/Wildcard.php
  20. 0 3
      library/Zend/Search/Lucene/Search/QueryEntry/Phrase.php
  21. 0 3
      library/Zend/Search/Lucene/Search/QueryEntry/Term.php
  22. 8 0
      library/Zend/Search/Lucene/Search/QueryParser.php
  23. 4 4
      library/Zend/Search/Lucene/TermStreamsPriorityQueue.php
  24. 44 3
      tests/Zend/Search/Lucene/AnalysisTest.php

+ 47 - 46
library/Zend/Search/Lucene.php

@@ -19,8 +19,9 @@
  * @version    $Id$
  */
 
-/** Zend_Search_Lucene_Document */
-require_once 'Zend/Search/Lucene/Document.php';
+
+/** User land classes and interfaces turned on by Zend/Search/Lucene.php file inclusion. */
+/** @todo Section should be removed with ZF 2.0 release as obsolete                      */
 
 /** Zend_Search_Lucene_Document_Html */
 require_once 'Zend/Search/Lucene/Document/Html.php';
@@ -34,53 +35,28 @@ require_once 'Zend/Search/Lucene/Document/Pptx.php';
 /** Zend_Search_Lucene_Document_Xlsx */
 require_once 'Zend/Search/Lucene/Document/Xlsx.php';
 
-/** Zend_Search_Lucene_Storage_Directory_Filesystem */
-require_once 'Zend/Search/Lucene/Storage/Directory/Filesystem.php';
-
-/** Zend_Search_Lucene_Storage_File_Memory */
-require_once 'Zend/Search/Lucene/Storage/File/Memory.php';
-
-/** Zend_Search_Lucene_Index_Term */
-require_once 'Zend/Search/Lucene/Index/Term.php';
-
-/** Zend_Search_Lucene_Index_TermInfo */
-require_once 'Zend/Search/Lucene/Index/TermInfo.php';
-
-/** Zend_Search_Lucene_Index_SegmentInfo */
-require_once 'Zend/Search/Lucene/Index/SegmentInfo.php';
-
-/** Zend_Search_Lucene_Index_FieldInfo */
-require_once 'Zend/Search/Lucene/Index/FieldInfo.php';
-
-/** Zend_Search_Lucene_Index_Writer */
-require_once 'Zend/Search/Lucene/Index/Writer.php';
-
 /** Zend_Search_Lucene_Search_QueryParser */
 require_once 'Zend/Search/Lucene/Search/QueryParser.php';
 
 /** Zend_Search_Lucene_Search_QueryHit */
 require_once 'Zend/Search/Lucene/Search/QueryHit.php';
 
-/** Zend_Search_Lucene_Search_Similarity */
-require_once 'Zend/Search/Lucene/Search/Similarity.php';
-
-/** Zend_Search_Lucene_Index_TermsPriorityQueue */
-require_once 'Zend/Search/Lucene/Index/TermsPriorityQueue.php';
+/** Zend_Search_Lucene_Analysis_Analyzer */
+require_once 'Zend/Search/Lucene/Analysis/Analyzer.php';
 
-/** Zend_Search_Lucene_TermStreamsPriorityQueue */
-require_once 'Zend/Search/Lucene/TermStreamsPriorityQueue.php';
 
-/** Zend_Search_Lucene_Index_DocsFilter */
-require_once 'Zend/Search/Lucene/Index/DocsFilter.php';
 
-/** Zend_Search_Lucene_LockManager */
-require_once 'Zend/Search/Lucene/LockManager.php';
+/** Internally used classes */
 
 /** Zend_Search_Lucene_Interface */
 require_once 'Zend/Search/Lucene/Interface.php';
 
-/** Zend_Search_Lucene_Proxy */
-require_once 'Zend/Search/Lucene/Proxy.php';
+/** Zend_Search_Lucene_Index_SegmentInfo */
+require_once 'Zend/Search/Lucene/Index/SegmentInfo.php';
+
+/** Zend_Search_Lucene_LockManager */
+require_once 'Zend/Search/Lucene/LockManager.php';
+
 
 /**
  * @category   Zend
@@ -139,7 +115,7 @@ class Zend_Search_Lucene implements Zend_Search_Lucene_Interface
     private $_writer = null;
 
     /**
-     * Array of Zend_Search_Lucene_Index_SegmentInfo objects for this index.
+     * Array of Zend_Search_Lucene_Index_SegmentInfo objects for current version of index.
      *
      * @var array Zend_Search_Lucene_Index_SegmentInfo
      */
@@ -201,6 +177,9 @@ class Zend_Search_Lucene implements Zend_Search_Lucene_Interface
      */
     public static function create($directory)
     {
+        /** Zend_Search_Lucene_Proxy */
+        require_once 'Zend/Search/Lucene/Proxy.php';
+
         return new Zend_Search_Lucene_Proxy(new Zend_Search_Lucene($directory, true));
     }
 
@@ -212,6 +191,9 @@ class Zend_Search_Lucene implements Zend_Search_Lucene_Interface
      */
     public static function open($directory)
     {
+        /** Zend_Search_Lucene_Proxy */
+        require_once 'Zend/Search/Lucene/Proxy.php';
+
         return new Zend_Search_Lucene_Proxy(new Zend_Search_Lucene($directory, false));
     }
 
@@ -477,7 +459,7 @@ class Zend_Search_Lucene implements Zend_Search_Lucene_Interface
      * IndexReader constructor needs Directory as a parameter. It should be
      * a string with a path to the index folder or a Directory object.
      *
-     * @param mixed $directory
+     * @param Zend_Search_Lucene_Storage_Directory_Filesystem|string $directory
      * @throws Zend_Search_Lucene_Exception
      */
     public function __construct($directory = null, $create = false)
@@ -487,12 +469,13 @@ class Zend_Search_Lucene implements Zend_Search_Lucene_Interface
             throw new Zend_Search_Exception('No index directory specified');
         }
 
-        if ($directory instanceof Zend_Search_Lucene_Storage_Directory_Filesystem) {
-            $this->_directory      = $directory;
-            $this->_closeDirOnExit = false;
-        } else {
+        if (is_string($directory)) {
+            require_once 'Zend/Search/Lucene/Storage/Directory/Filesystem.php';
             $this->_directory      = new Zend_Search_Lucene_Storage_Directory_Filesystem($directory);
             $this->_closeDirOnExit = true;
+        } else {
+            $this->_directory      = $directory;
+            $this->_closeDirOnExit = false;
         }
 
         $this->_segmentInfos = array();
@@ -529,6 +512,7 @@ class Zend_Search_Lucene implements Zend_Search_Lucene_Interface
                 $this->_generation++;
             }
 
+            require_once 'Zend/Search/Lucene/Index/Writer.php';
             Zend_Search_Lucene_Index_Writer::createIndex($this->_directory, $this->_generation, $nameCounter);
 
             Zend_Search_Lucene_LockManager::releaseWriteLock($this->_directory);
@@ -611,8 +595,11 @@ class Zend_Search_Lucene implements Zend_Search_Lucene_Interface
      */
     private function _getIndexWriter()
     {
-        if (!$this->_writer instanceof Zend_Search_Lucene_Index_Writer) {
-            $this->_writer = new Zend_Search_Lucene_Index_Writer($this->_directory, $this->_segmentInfos, $this->_formatVersion);
+        if ($this->_writer === null) {
+            require_once 'Zend/Search/Lucene/Index/Writer.php';
+            $this->_writer = new Zend_Search_Lucene_Index_Writer($this->_directory,
+                                                                 $this->_segmentInfos,
+                                                                 $this->_formatVersion);
         }
 
         return $this->_writer;
@@ -881,13 +868,15 @@ class Zend_Search_Lucene implements Zend_Search_Lucene_Interface
      * of Zend_Search_Lucene_Search_QueryHit objects.
      * Input is a string or Zend_Search_Lucene_Search_Query.
      *
-     * @param mixed $query
+     * @param Zend_Search_Lucene_Search_QueryParser|string $query
      * @return array Zend_Search_Lucene_Search_QueryHit
      * @throws Zend_Search_Lucene_Exception
      */
     public function find($query)
     {
         if (is_string($query)) {
+            require_once 'Zend/Search/Lucene/Search/QueryParser.php';
+
             $query = Zend_Search_Lucene_Search_QueryParser::parse($query);
         }
 
@@ -908,6 +897,9 @@ class Zend_Search_Lucene implements Zend_Search_Lucene_Interface
 
         $topScore = 0;
 
+        /** Zend_Search_Lucene_Search_QueryHit */
+        require_once 'Zend/Search/Lucene/Search/QueryHit.php';
+
         foreach ($query->matchedDocs() as $id => $num) {
             $docScore = $query->score($id, $this);
             if( $docScore != 0 ) {
@@ -1120,7 +1112,7 @@ class Zend_Search_Lucene implements Zend_Search_Lucene_Interface
     public function hasTerm(Zend_Search_Lucene_Index_Term $term)
     {
         foreach ($this->_segmentInfos as $segInfo) {
-            if ($segInfo->getTermInfo($term) instanceof Zend_Search_Lucene_Index_TermInfo) {
+            if ($segInfo->getTermInfo($term) !== null) {
                 return true;
             }
         }
@@ -1264,6 +1256,9 @@ class Zend_Search_Lucene implements Zend_Search_Lucene_Interface
      */
     public function getSimilarity()
     {
+        /** Zend_Search_Lucene_Search_Similarity */
+        require_once 'Zend/Search/Lucene/Search/Similarity.php';
+
         return Zend_Search_Lucene_Search_Similarity::getDefault();
     }
 
@@ -1416,6 +1411,9 @@ class Zend_Search_Lucene implements Zend_Search_Lucene_Interface
     {
         $result = array();
 
+        /** Zend_Search_Lucene_Index_TermsPriorityQueue */
+        require_once 'Zend/Search/Lucene/Index/TermsPriorityQueue.php';
+
         $segmentInfoQueue = new Zend_Search_Lucene_Index_TermsPriorityQueue();
 
         foreach ($this->_segmentInfos as $segmentInfo) {
@@ -1458,6 +1456,9 @@ class Zend_Search_Lucene implements Zend_Search_Lucene_Interface
     public function resetTermsStream()
     {
         if ($this->_termsStream === null) {
+            /** Zend_Search_Lucene_TermStreamsPriorityQueue */
+            require_once 'Zend/Search/Lucene/TermStreamsPriorityQueue.php';
+
             $this->_termsStream = new Zend_Search_Lucene_TermStreamsPriorityQueue($this->_segmentInfos);
         } else {
             $this->_termsStream->resetTermsStream();

+ 23 - 25
library/Zend/Search/Lucene/Analysis/Analyzer.php

@@ -21,38 +21,33 @@
  */
 
 
-/** Zend_Search_Lucene_Analysis_Token */
-require_once 'Zend/Search/Lucene/Analysis/Token.php';
+/** User land classes and interfaces turned on by Zend/Search/Analyzer.php file inclusion. */
+/** @todo Section should be removed with ZF 2.0 release as obsolete                      */
+if (!defined('ZEND_SEARCH_LUCENE_COMMON_ANALYZER_PROCESSED')) {
+    /** Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8 */
+    require_once 'Zend/Search/Lucene/Analysis/Analyzer/Common/Utf8.php';
 
-/** Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8 */
-require_once 'Zend/Search/Lucene/Analysis/Analyzer/Common/Utf8.php';
+    /** Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive */
+    require_once 'Zend/Search/Lucene/Analysis/Analyzer/Common/Utf8/CaseInsensitive.php';
 
-/** Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive */
-require_once 'Zend/Search/Lucene/Analysis/Analyzer/Common/Utf8/CaseInsensitive.php';
+    /** Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num */
+    require_once 'Zend/Search/Lucene/Analysis/Analyzer/Common/Utf8Num.php';
 
-/** Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num */
-require_once 'Zend/Search/Lucene/Analysis/Analyzer/Common/Utf8Num.php';
+    /** Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive */
+    require_once 'Zend/Search/Lucene/Analysis/Analyzer/Common/Utf8Num/CaseInsensitive.php';
 
-/** Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive */
-require_once 'Zend/Search/Lucene/Analysis/Analyzer/Common/Utf8Num/CaseInsensitive.php';
+    /** Zend_Search_Lucene_Analysis_Analyzer_Common_Text */
+    require_once 'Zend/Search/Lucene/Analysis/Analyzer/Common/Text.php';
 
-/** Zend_Search_Lucene_Analysis_Analyzer_Common_Text */
-require_once 'Zend/Search/Lucene/Analysis/Analyzer/Common/Text.php';
+    /** Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive */
+    require_once 'Zend/Search/Lucene/Analysis/Analyzer/Common/Text/CaseInsensitive.php';
 
-/** Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive */
-require_once 'Zend/Search/Lucene/Analysis/Analyzer/Common/Text/CaseInsensitive.php';
+    /** Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum */
+    require_once 'Zend/Search/Lucene/Analysis/Analyzer/Common/TextNum.php';
 
-/** Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum */
-require_once 'Zend/Search/Lucene/Analysis/Analyzer/Common/TextNum.php';
-
-/** Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive */
-require_once 'Zend/Search/Lucene/Analysis/Analyzer/Common/TextNum/CaseInsensitive.php';
-
-/** Zend_Search_Lucene_Analysis_TokenFilter_StopWords */
-require_once 'Zend/Search/Lucene/Analysis/TokenFilter/StopWords.php';
-
-/** Zend_Search_Lucene_Analysis_TokenFilter_ShortWords */
-require_once 'Zend/Search/Lucene/Analysis/TokenFilter/ShortWords.php';
+    /** Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive */
+    require_once 'Zend/Search/Lucene/Analysis/Analyzer/Common/TextNum/CaseInsensitive.php';
+}
 
 
 /**
@@ -167,6 +162,9 @@ abstract class Zend_Search_Lucene_Analysis_Analyzer
      */
     public static function getDefault()
     {
+        /** Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive */
+        require_once 'Zend/Search/Lucene/Analysis/Analyzer/Common/Text/CaseInsensitive.php';
+
         if (!self::$_defaultImpl instanceof Zend_Search_Lucene_Analysis_Analyzer) {
             self::$_defaultImpl = new Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive();
         }

+ 11 - 0
library/Zend/Search/Lucene/Analysis/Analyzer/Common.php

@@ -21,9 +21,20 @@
  */
 
 
+/** Define constant used to provide correct file processing order    */
+/** @todo Section should be removed with ZF 2.0 release as obsolete  */
+define('ZEND_SEARCH_LUCENE_COMMON_ANALYZER_PROCESSED', true);
+
+
 /** Zend_Search_Lucene_Analysis_Analyzer */
 require_once 'Zend/Search/Lucene/Analysis/Analyzer.php';
 
+/** Zend_Search_Lucene_Analysis_Token */
+require_once 'Zend/Search/Lucene/Analysis/Token.php';
+
+/** Zend_Search_Lucene_Analysis_TokenFilter */
+require_once 'Zend/Search/Lucene/Analysis/TokenFilter.php';
+
 
 /**
  * Common implementation of the Zend_Search_Lucene_Analysis_Analyzer interface.

+ 0 - 1
library/Zend/Search/Lucene/Analysis/TokenFilter.php

@@ -34,7 +34,6 @@ require_once 'Zend/Search/Lucene/Analysis/Token.php';
  * @copyright  Copyright (c) 2005-2009 Zend Technologies USA Inc. (http://www.zend.com)
  * @license    http://framework.zend.com/license/new-bsd     New BSD License
  */
-
 abstract class Zend_Search_Lucene_Analysis_TokenFilter
 {
     /**

+ 6 - 0
library/Zend/Search/Lucene/Document/Html.php

@@ -264,6 +264,9 @@ class Zend_Search_Lucene_Document_Html extends Zend_Search_Lucene_Document
      */
     protected function _highlightTextNode(DOMText $node, $wordsToHighlight, $callback, $params)
     {
+        /** Zend_Search_Lucene_Analysis_Analyzer */
+        require_once 'Zend/Search/Lucene/Analysis/Analyzer.php';
+
         $analyzer = Zend_Search_Lucene_Analysis_Analyzer::getDefault();
         $analyzer->setInput($node->nodeValue, 'UTF-8');
 
@@ -389,6 +392,9 @@ class Zend_Search_Lucene_Document_Html extends Zend_Search_Lucene_Document
      */
     public function highlightExtended($words, $callback, $params = array())
     {
+        /** Zend_Search_Lucene_Analysis_Analyzer */
+        require_once 'Zend/Search/Lucene/Analysis/Analyzer.php';
+
         if (!is_array($words)) {
             $words = array($words);
         }

+ 1 - 0
library/Zend/Search/Lucene/Document/OpenXml.php

@@ -24,6 +24,7 @@
 /** Zend_Search_Lucene_Document */
 require_once 'Zend/Search/Lucene/Document.php';
 
+
 if (class_exists('ZipArchive', false)) {
 
 /**

+ 17 - 6
library/Zend/Search/Lucene/Index/SegmentInfo.php

@@ -20,15 +20,22 @@
  * @version    $Id$
  */
 
-/** Zend_Search_Lucene_Index_DictionaryLoader */
-require_once 'Zend/Search/Lucene/Index/DictionaryLoader.php';
-
-/** Zend_Search_Lucene_Index_DocsFilter */
-require_once 'Zend/Search/Lucene/Index/DocsFilter.php';
-
 /** Zend_Search_Lucene_Index_TermsStream_Interface */
 require_once 'Zend/Search/Lucene/Index/TermsStream/Interface.php';
 
+
+/** Zend_Search_Lucene_Search_Similarity */
+require_once 'Zend/Search/Lucene/Search/Similarity.php';
+
+/** Zend_Search_Lucene_Index_FieldInfo */
+require_once 'Zend/Search/Lucene/Index/FieldInfo.php';
+
+/** Zend_Search_Lucene_Index_Term */
+require_once 'Zend/Search/Lucene/Index/Term.php';
+
+/** Zend_Search_Lucene_Index_TermInfo */
+require_once 'Zend/Search/Lucene/Index/TermInfo.php';
+
 /**
  * @category   Zend
  * @package    Zend_Search_Lucene
@@ -297,6 +304,7 @@ class Zend_Search_Lucene_Index_SegmentInfo implements Zend_Search_Lucene_Index_T
         $fieldNames = array();
         $fieldNums  = array();
         $this->_fields = array();
+
         for ($count=0; $count < $fieldsCount; $count++) {
             $fieldName = $fnmFile->readString();
             $fieldBits = $fnmFile->readByte();
@@ -785,6 +793,9 @@ class Zend_Search_Lucene_Index_SegmentInfo implements Zend_Search_Lucene_Index_T
         $tiiFile = $this->openCompoundFile('.tii');
         $tiiFileData = $tiiFile->readBytes($this->compoundFileLength('.tii'));
 
+        /** Zend_Search_Lucene_Index_DictionaryLoader */
+        require_once 'Zend/Search/Lucene/Index/DictionaryLoader.php';
+
         // Load dictionary index data
         list($this->_termDictionary, $this->_termDictionaryInfos) =
                     Zend_Search_Lucene_Index_DictionaryLoader::load($tiiFileData);

+ 9 - 2
library/Zend/Search/Lucene/Index/SegmentWriter.php

@@ -20,8 +20,15 @@
  * @version    $Id$
  */
 
-/** Zend_Search_Lucene_Index_SegmentInfo */
-require_once 'Zend/Search/Lucene/Index/SegmentInfo.php';
+
+/** Zend_Search_Lucene_Index_FieldInfo */
+require_once 'Zend/Search/Lucene/Index/FieldInfo.php';
+
+/** Zend_Search_Lucene_Index_Term */
+require_once 'Zend/Search/Lucene/Index/Term.php';
+
+/** Zend_Search_Lucene_Index_TermInfo */
+require_once 'Zend/Search/Lucene/Index/TermInfo.php';
 
 /**
  * @category   Zend

+ 9 - 3
library/Zend/Search/Lucene/Index/SegmentWriter/DocumentWriter.php

@@ -20,9 +20,6 @@
  * @version    $Id$
  */
 
-/** Zend_Search_Lucene_Analysis_Analyzer */
-require_once 'Zend/Search/Lucene/Analysis/Analyzer.php';
-
 /** Zend_Search_Lucene_Index_SegmentWriter */
 require_once 'Zend/Search/Lucene/Index/SegmentWriter.php';
 
@@ -74,6 +71,9 @@ class Zend_Search_Lucene_Index_SegmentWriter_DocumentWriter extends Zend_Search_
      */
     public function addDocument(Zend_Search_Lucene_Document $document)
     {
+        /** Zend_Search_Lucene_Search_Similarity */
+        require_once 'Zend/Search/Lucene/Search/Similarity.php';
+
         $storedFields = array();
         $docNorms     = array();
         $similarity   = Zend_Search_Lucene_Search_Similarity::getDefault();
@@ -92,6 +92,9 @@ class Zend_Search_Lucene_Index_SegmentWriter_DocumentWriter extends Zend_Search_
 
             if ($field->isIndexed) {
                 if ($field->isTokenized) {
+                    /** Zend_Search_Lucene_Analysis_Analyzer */
+                    require_once 'Zend/Search/Lucene/Analysis/Analyzer.php';
+
                     $analyzer = Zend_Search_Lucene_Analysis_Analyzer::getDefault();
                     $analyzer->setInput($field->value, $field->encoding);
 
@@ -201,6 +204,9 @@ class Zend_Search_Lucene_Index_SegmentWriter_DocumentWriter extends Zend_Search_
 
         $this->_generateCFS();
 
+        /** Zend_Search_Lucene_Index_SegmentInfo */
+        require_once 'Zend/Search/Lucene/Index/SegmentInfo.php';
+
         return new Zend_Search_Lucene_Index_SegmentInfo($this->_directory,
                                                         $this->_name,
                                                         $this->_docCount,

+ 3 - 3
library/Zend/Search/Lucene/Index/SegmentWriter/StreamWriter.php

@@ -20,9 +20,6 @@
  * @version    $Id$
  */
 
-/** Zend_Search_Lucene_Index_SegmentInfo */
-require_once 'Zend/Search/Lucene/Index/SegmentInfo.php';
-
 /** Zend_Search_Lucene_Index_SegmentWriter */
 require_once 'Zend/Search/Lucene/Index/SegmentWriter.php';
 
@@ -82,6 +79,9 @@ class Zend_Search_Lucene_Index_SegmentWriter_StreamWriter extends Zend_Search_Lu
         $this->_dumpFNM();
         $this->_generateCFS();
 
+        /** Zend_Search_Lucene_Index_SegmentInfo */
+        require_once 'Zend/Search/Lucene/Index/SegmentInfo.php';
+
         return new Zend_Search_Lucene_Index_SegmentInfo($this->_directory,
                                                         $this->_name,
                                                         $this->_docCount,

+ 1 - 1
library/Zend/Search/Lucene/Index/TermsPriorityQueue.php

@@ -20,7 +20,7 @@
  * @version    $Id$
  */
 
-/** Zend_Search_Lucene */
+/** Zend_Search_Lucene_PriorityQueue */
 require_once 'Zend/Search/Lucene/PriorityQueue.php';
 
 /**

+ 13 - 0
library/Zend/Search/Lucene/Interface.php

@@ -19,10 +19,23 @@
  * @version    $Id$
  */
 
+
 /** Zend_Search_Lucene_Index_TermsStream_Interface */
 require_once 'Zend/Search/Lucene/Index/TermsStream/Interface.php';
 
 
+/** Classes used within Zend_Search_Lucene_Interface API */
+
+/** Zend_Search_Lucene_Document */
+require_once 'Zend/Search/Lucene/Document.php';
+
+/** Zend_Search_Lucene_Index_Term */
+require_once 'Zend/Search/Lucene/Index/Term.php';
+
+/** Zend_Search_Lucene_Index_DocsFilter */
+require_once 'Zend/Search/Lucene/Index/DocsFilter.php';
+
+
 /**
  * @category   Zend
  * @package    Zend_Search_Lucene

+ 5 - 4
library/Zend/Search/Lucene/MultiSearcher.php

@@ -19,10 +19,8 @@
  * @version    $Id$
  */
 
-/** @see Zend_Search_Lucene_TermStreamsPriorityQueue */
-require_once 'Zend/Search/Lucene/TermStreamsPriorityQueue.php';
 
-/** @see Zend_Search_Lucene_Interface */
+/** Zend_Search_Lucene_Interface */
 require_once 'Zend/Search/Lucene/Interface.php';
 
 /**
@@ -443,7 +441,7 @@ class Zend_Search_Lucene_Interface_MultiSearcher implements Zend_Search_Lucene_I
     public function setMergeFactor($mergeFactor)
     {
         foreach ($this->_indices as $index) {
-            $index->setMaxMergeDocs($maxMergeDocs);
+            $index->setMaxMergeDocs($mergeFactor);
         }
     }
 
@@ -878,6 +876,9 @@ class Zend_Search_Lucene_Interface_MultiSearcher implements Zend_Search_Lucene_I
     public function resetTermsStream()
     {
         if ($this->_termsStream === null) {
+            /** Zend_Search_Lucene_TermStreamsPriorityQueue */
+            require_once 'Zend/Search/Lucene/TermStreamsPriorityQueue.php';
+
             $this->_termsStream = new Zend_Search_Lucene_TermStreamsPriorityQueue($this->_indices);
         } else {
             $this->_termsStream->resetTermsStream();

+ 3 - 0
library/Zend/Search/Lucene/Search/Query/Fuzzy.php

@@ -431,6 +431,9 @@ class Zend_Search_Lucene_Search_Query_Fuzzy extends Zend_Search_Lucene_Search_Qu
         $scaleFactor = 1/(1 - $this->_minimumSimilarity);
 
 
+        /** Zend_Search_Lucene_Analysis_Analyzer */
+        require_once 'Zend/Search/Lucene/Analysis/Analyzer.php';
+
         $docBody = $highlighter->getDocument()->getFieldUtf8Value('body');
         $tokens = Zend_Search_Lucene_Analysis_Analyzer::getDefault()->tokenize($docBody, 'UTF-8');
         foreach ($tokens as $token) {

+ 6 - 0
library/Zend/Search/Lucene/Search/Query/Preprocessing/Fuzzy.php

@@ -191,6 +191,9 @@ class Zend_Search_Lucene_Search_Query_Preprocessing_Fuzzy extends Zend_Search_Lu
         }
 
 
+        /** Zend_Search_Lucene_Analysis_Analyzer */
+        require_once 'Zend/Search/Lucene/Analysis/Analyzer.php';
+
         // -------------------------------------
         // Recognize one-term multi-term and "insignificant" queries
         $tokens = Zend_Search_Lucene_Analysis_Analyzer::getDefault()->tokenize($this->_word, $this->_encoding);
@@ -242,6 +245,9 @@ class Zend_Search_Lucene_Search_Query_Preprocessing_Fuzzy extends Zend_Search_Lu
             return;
         }
 
+        /** Zend_Search_Lucene_Analysis_Analyzer */
+        require_once 'Zend/Search/Lucene/Analysis/Analyzer.php';
+
         // -------------------------------------
         // Recognize one-term multi-term and "insignificant" queries
         $tokens = Zend_Search_Lucene_Analysis_Analyzer::getDefault()->tokenize($this->_word, $this->_encoding);

+ 7 - 0
library/Zend/Search/Lucene/Search/Query/Preprocessing/Phrase.php

@@ -181,6 +181,9 @@ class Zend_Search_Lucene_Search_Query_Preprocessing_Phrase extends Zend_Search_L
         }
 
 
+        /** Zend_Search_Lucene_Analysis_Analyzer */
+        require_once 'Zend/Search/Lucene/Analysis/Analyzer.php';
+
         // tokenize phrase using current analyzer and process it as a phrase query
         $tokens = Zend_Search_Lucene_Analysis_Analyzer::getDefault()->tokenize($this->_phrase, $this->_phraseEncoding);
 
@@ -224,6 +227,10 @@ class Zend_Search_Lucene_Search_Query_Preprocessing_Phrase extends Zend_Search_L
 
         /** Skip wildcard queries recognition. Supported wildcards are removed by text analyzer */
 
+
+        /** Zend_Search_Lucene_Analysis_Analyzer */
+        require_once 'Zend/Search/Lucene/Analysis/Analyzer.php';
+
         // tokenize phrase using current analyzer and process it as a phrase query
         $tokens = Zend_Search_Lucene_Analysis_Analyzer::getDefault()->tokenize($this->_phrase, $this->_phraseEncoding);
 

+ 12 - 0
library/Zend/Search/Lucene/Search/Query/Preprocessing/Term.php

@@ -170,6 +170,9 @@ class Zend_Search_Lucene_Search_Query_Preprocessing_Term extends Zend_Search_Luc
 
             $pattern = '';
 
+            /** Zend_Search_Lucene_Analysis_Analyzer */
+            require_once 'Zend/Search/Lucene/Analysis/Analyzer.php';
+
             foreach ($subPatterns as $id => $subPattern) {
                 // Append corresponding wildcard character to the pattern before each sub-pattern (except first)
                 if ($id != 0) {
@@ -199,6 +202,9 @@ class Zend_Search_Lucene_Search_Query_Preprocessing_Term extends Zend_Search_Luc
         }
 
 
+        /** Zend_Search_Lucene_Analysis_Analyzer */
+        require_once 'Zend/Search/Lucene/Analysis/Analyzer.php';
+
         // -------------------------------------
         // Recognize one-term multi-term and "insignificant" queries
         $tokens = Zend_Search_Lucene_Analysis_Analyzer::getDefault()->tokenize($this->_word, $this->_encoding);
@@ -264,6 +270,9 @@ class Zend_Search_Lucene_Search_Query_Preprocessing_Term extends Zend_Search_Luc
 
             $pattern = '';
 
+            /** Zend_Search_Lucene_Analysis_Analyzer */
+            require_once 'Zend/Search/Lucene/Analysis/Analyzer.php';
+
             foreach ($subPatterns as $id => $subPattern) {
                 // Append corresponding wildcard character to the pattern before each sub-pattern (except first)
                 if ($id != 0) {
@@ -288,6 +297,9 @@ class Zend_Search_Lucene_Search_Query_Preprocessing_Term extends Zend_Search_Luc
             return;
         }
 
+        /** Zend_Search_Lucene_Analysis_Analyzer */
+        require_once 'Zend/Search/Lucene/Analysis/Analyzer.php';
+
         // -------------------------------------
         // Recognize one-term multi-term and "insignificant" queries
         $tokens = Zend_Search_Lucene_Analysis_Analyzer::getDefault()->tokenize($this->_word, $this->_encoding);

+ 3 - 0
library/Zend/Search/Lucene/Search/Query/Range.php

@@ -327,6 +327,9 @@ class Zend_Search_Lucene_Search_Query_Range extends Zend_Search_Lucene_Search_Qu
     {
         $words = array();
 
+        /** Zend_Search_Lucene_Analysis_Analyzer */
+        require_once 'Zend/Search/Lucene/Analysis/Analyzer.php';
+
         $docBody = $highlighter->getDocument()->getFieldUtf8Value('body');
         $tokens = Zend_Search_Lucene_Analysis_Analyzer::getDefault()->tokenize($docBody, 'UTF-8');
 

+ 3 - 0
library/Zend/Search/Lucene/Search/Query/Wildcard.php

@@ -314,6 +314,9 @@ class Zend_Search_Lucene_Search_Query_Wildcard extends Zend_Search_Lucene_Search
             $matchExpression .= 'u';
         }
 
+        /** Zend_Search_Lucene_Analysis_Analyzer */
+        require_once 'Zend/Search/Lucene/Analysis/Analyzer.php';
+
         $docBody = $highlighter->getDocument()->getFieldUtf8Value('body');
         $tokens = Zend_Search_Lucene_Analysis_Analyzer::getDefault()->tokenize($docBody, 'UTF-8');
         foreach ($tokens as $token) {

+ 0 - 3
library/Zend/Search/Lucene/Search/QueryEntry/Phrase.php

@@ -26,9 +26,6 @@ require_once 'Zend/Search/Lucene/Index/Term.php';
 /** Zend_Search_Lucene_Search_QueryEntry */
 require_once 'Zend/Search/Lucene/Search/QueryEntry.php';
 
-/** Zend_Search_Lucene_Analysis_Analyzer */
-require_once 'Zend/Search/Lucene/Analysis/Analyzer.php';
-
 /**
  * @category   Zend
  * @package    Zend_Search_Lucene

+ 0 - 3
library/Zend/Search/Lucene/Search/QueryEntry/Term.php

@@ -26,9 +26,6 @@ require_once 'Zend/Search/Lucene/Index/Term.php';
 /** Zend_Search_Lucene_Search_QueryEntry */
 require_once 'Zend/Search/Lucene/Search/QueryEntry.php';
 
-/** Zend_Search_Lucene_Analysis_Analyzer */
-require_once 'Zend/Search/Lucene/Analysis/Analyzer.php';
-
 /**
  * @category   Zend
  * @package    Zend_Search_Lucene

+ 8 - 0
library/Zend/Search/Lucene/Search/QueryParser.php

@@ -20,6 +20,14 @@
  * @version    $Id$
  */
 
+
+/** Internally used classes */
+
+/** Zend_Search_Lucene_Analysis_Analyzer */
+require_once 'Zend/Search/Lucene/Analysis/Analyzer.php';
+
+
+
 /** Zend_Search_Lucene_Index_Term */
 require_once 'Zend/Search/Lucene/Index/Term.php';
 

+ 4 - 4
library/Zend/Search/Lucene/TermStreamsPriorityQueue.php

@@ -20,12 +20,9 @@
  * @version    $Id$
  */
 
-/** @see Zend_Search_Lucene_Index_TermsStream_Interface */
+/** Zend_Search_Lucene_Index_TermsStream_Interface */
 require_once 'Zend/Search/Lucene/Index/TermsStream/Interface.php';
 
-/** @see Zend_Search_Lucene_Index_TermsPriorityQueue */
-require_once 'Zend/Search/Lucene/Index/TermsPriorityQueue.php';
-
 
 /**
  * @category   Zend
@@ -75,6 +72,9 @@ class Zend_Search_Lucene_TermStreamsPriorityQueue implements Zend_Search_Lucene_
      */
     public function resetTermsStream()
     {
+        /** Zend_Search_Lucene_Index_TermsPriorityQueue */
+        require_once 'Zend/Search/Lucene/Index/TermsPriorityQueue.php';
+
         $this->_termsStreamQueue = new Zend_Search_Lucene_Index_TermsPriorityQueue();
 
         foreach ($this->_termStreams as $termStream) {

+ 44 - 3
tests/Zend/Search/Lucene/AnalysisTest.php

@@ -45,6 +45,9 @@ class Zend_Search_Lucene_AnalysisTest extends PHPUnit_Framework_TestCase
         $currentAnalyzer = Zend_Search_Lucene_Analysis_Analyzer::getDefault();
         $this->assertTrue($currentAnalyzer instanceof Zend_Search_Lucene_Analysis_Analyzer);
 
+        /** Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num */
+        require_once 'Zend/Search/Lucene/Analysis/Analyzer/Common/Utf8Num.php';
+
         $newAnalyzer = new Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num();
         Zend_Search_Lucene_Analysis_Analyzer::setDefault($newAnalyzer);
         $this->assertTrue(Zend_Search_Lucene_Analysis_Analyzer::getDefault() === $newAnalyzer);
@@ -55,6 +58,9 @@ class Zend_Search_Lucene_AnalysisTest extends PHPUnit_Framework_TestCase
 
     public function testText()
     {
+        /** Zend_Search_Lucene_Analysis_Analyzer_Common_Text */
+        require_once 'Zend/Search/Lucene/Analysis/Analyzer/Common/Text.php';
+
         $analyzer = new Zend_Search_Lucene_Analysis_Analyzer_Common_Text();
 
         $tokenList = $analyzer->tokenize('Word1 Word2 anotherWord');
@@ -79,6 +85,9 @@ class Zend_Search_Lucene_AnalysisTest extends PHPUnit_Framework_TestCase
 
     public function testTextCaseInsensitive()
     {
+        /** Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive */
+        require_once 'Zend/Search/Lucene/Analysis/Analyzer/Common/Text/CaseInsensitive.php';
+
         $analyzer = new Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive();
 
         $tokenList = $analyzer->tokenize('Word1 Word2 anotherWord');
@@ -103,6 +112,9 @@ class Zend_Search_Lucene_AnalysisTest extends PHPUnit_Framework_TestCase
 
     public function testTextNum()
     {
+        /** Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum */
+        require_once 'Zend/Search/Lucene/Analysis/Analyzer/Common/TextNum.php';
+
         $analyzer = new Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum();
 
         $tokenList = $analyzer->tokenize('Word1 Word2 anotherWord');
@@ -127,6 +139,9 @@ class Zend_Search_Lucene_AnalysisTest extends PHPUnit_Framework_TestCase
 
     public function testTextNumCaseInsensitive()
     {
+        /** Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive */
+        require_once 'Zend/Search/Lucene/Analysis/Analyzer/Common/TextNum/CaseInsensitive.php';
+
         $analyzer = new Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive();
 
         $tokenList = $analyzer->tokenize('Word1 Word2 anotherWord');
@@ -155,7 +170,10 @@ class Zend_Search_Lucene_AnalysisTest extends PHPUnit_Framework_TestCase
             // PCRE unicode support is turned off
             return;
         }
-                
+
+        /** Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8 */
+        require_once 'Zend/Search/Lucene/Analysis/Analyzer/Common/Utf8.php';
+
         $analyzer = new Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8();
 
         // UTF-8 text with a cyrillic symbols
@@ -186,6 +204,9 @@ class Zend_Search_Lucene_AnalysisTest extends PHPUnit_Framework_TestCase
             return;
         }
 
+        /** Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num */
+        require_once 'Zend/Search/Lucene/Analysis/Analyzer/Common/Utf8Num.php';
+
         $analyzer = new Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num();
 
         // UTF-8 text with a cyrillic symbols
@@ -220,6 +241,9 @@ class Zend_Search_Lucene_AnalysisTest extends PHPUnit_Framework_TestCase
             return;
         }
 
+        /** Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive */
+        require_once 'Zend/Search/Lucene/Analysis/Analyzer/Common/Utf8/CaseInsensitive.php';
+
         $analyzer = new Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive();
 
         // UTF-8 text with a cyrillic symbols
@@ -253,7 +277,9 @@ class Zend_Search_Lucene_AnalysisTest extends PHPUnit_Framework_TestCase
             // mbstring extension is disabled
             return;
         }
-        
+
+        /** Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive */
+        require_once 'Zend/Search/Lucene/Analysis/Analyzer/Common/Utf8Num/CaseInsensitive.php';
         $analyzer = new Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive();
 
         // UTF-8 text with a cyrillic symbols
@@ -282,7 +308,10 @@ class Zend_Search_Lucene_AnalysisTest extends PHPUnit_Framework_TestCase
         if (PHP_OS == 'AIX') {
             $this->markTestSkipped('Test not available on AIX');
         }
-        
+
+        /** Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8 */
+        require_once 'Zend/Search/Lucene/Analysis/Analyzer/Common/Utf8.php';
+
         $analyzer = new Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8();
 
         // UTF-8 text with a cyrillic symbols
@@ -308,6 +337,12 @@ class Zend_Search_Lucene_AnalysisTest extends PHPUnit_Framework_TestCase
 
     public function testStopWords()
     {
+        /** Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive */
+        require_once 'Zend/Search/Lucene/Analysis/Analyzer/Common/Text/CaseInsensitive.php';
+
+        /** Zend_Search_Lucene_Analysis_TokenFilter_StopWords */
+        require_once 'Zend/Search/Lucene/Analysis/TokenFilter/StopWords.php';
+
         $analyzer = new Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive();
         $stopWordsFilter = new Zend_Search_Lucene_Analysis_TokenFilter_StopWords(array('word', 'and', 'or'));
 
@@ -325,6 +360,12 @@ class Zend_Search_Lucene_AnalysisTest extends PHPUnit_Framework_TestCase
 
     public function testShortWords()
     {
+        /** Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive */
+        require_once 'Zend/Search/Lucene/Analysis/Analyzer/Common/Text/CaseInsensitive.php';
+
+        /** Zend_Search_Lucene_Analysis_TokenFilter_ShortWords */
+        require_once 'Zend/Search/Lucene/Analysis/TokenFilter/ShortWords.php';
+
         $analyzer = new Zend_Search_Lucene_Analysis_Analyzer_Common_Text_CaseInsensitive();
         $stopWordsFilter = new Zend_Search_Lucene_Analysis_TokenFilter_ShortWords(4 /* Minimal length */);