Przeglądaj źródła

ZF-3683: Performance improvement: reuse token object in lowercase filter

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@24832 44c647ce-9c0f-0410-b52a-842ac1e357ba
adamlundrigan 13 lat temu
rodzic
commit
aff0e970ea

+ 12 - 0
library/Zend/Search/Lucene/Analysis/Token.php

@@ -123,6 +123,18 @@ class Zend_Search_Lucene_Analysis_Token
     {
         return $this->_termText;
     }
+    
+    /**
+     * Sets the Token's term text.
+     * 
+     * @param string $text
+     * @return this
+     */
+    public function setTermText($text)
+    {
+        $this->_termText = $text;
+        return $this;
+    }
 
     /**
      * Returns this Token's starting offset, the position of the first character

+ 2 - 8
library/Zend/Search/Lucene/Analysis/TokenFilter/LowerCase.php

@@ -45,14 +45,8 @@ class Zend_Search_Lucene_Analysis_TokenFilter_LowerCase extends Zend_Search_Luce
      */
     public function normalize(Zend_Search_Lucene_Analysis_Token $srcToken)
     {
-        $newToken = new Zend_Search_Lucene_Analysis_Token(
-                                     strtolower( $srcToken->getTermText() ),
-                                     $srcToken->getStartOffset(),
-                                     $srcToken->getEndOffset());
-
-        $newToken->setPositionIncrement($srcToken->getPositionIncrement());
-
-        return $newToken;
+        $srcToken->setTermText(strtolower($srcToken->getTermText()));
+        return $srcToken;
     }
 }
 

+ 2 - 8
library/Zend/Search/Lucene/Analysis/TokenFilter/LowerCaseUtf8.php

@@ -57,14 +57,8 @@ class Zend_Search_Lucene_Analysis_TokenFilter_LowerCaseUtf8 extends Zend_Search_
      */
     public function normalize(Zend_Search_Lucene_Analysis_Token $srcToken)
     {
-        $newToken = new Zend_Search_Lucene_Analysis_Token(
-                                     mb_strtolower($srcToken->getTermText(), 'UTF-8'),
-                                     $srcToken->getStartOffset(),
-                                     $srcToken->getEndOffset());
-
-        $newToken->setPositionIncrement($srcToken->getPositionIncrement());
-
-        return $newToken;
+        $srcToken->setTermText(mb_strtolower($srcToken->getTermText(), 'UTF-8'));
+        return $srcToken;
     }
 }