From 0670037f30e8edf6afbe0e09e7adb845a17144b1 Mon Sep 17 00:00:00 2001 From: vanry Date: Fri, 27 Apr 2018 10:19:56 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=9E=84=20TokenizerManager?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/TokenizerManager.php | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/TokenizerManager.php b/src/TokenizerManager.php index 615f136..193b5c2 100644 --- a/src/TokenizerManager.php +++ b/src/TokenizerManager.php @@ -3,6 +3,7 @@ namespace Vanry\Scout; use Latrell\Scws\Scws; +use Phpanalysis\Phpanalysis; use Illuminate\Support\Manager; use TeamTNT\TNTSearch\Support\Tokenizer; use Vanry\Scout\Tokenizers\ScwsTokenizer; @@ -18,7 +19,7 @@ class TokenizerManager extends Manager */ public function createJiebaDriver() { - return new JiebaTokenizer($this->app['config']['scout.tntsearch.tokenizer.jieba']); + return new JiebaTokenizer($this->getConfig('jieba')); } /** @@ -30,7 +31,7 @@ public function createAnalysisDriver() { $analysis = new Phpanalysis; - foreach ($this->app['config']['scout.tntsearch.tokenizer.analysis'] as $key => $value) { + foreach ($this->getConfig('analysis') as $key => $value) { $key = camel_case($key); if (property_exists($analysis, $key)) { @@ -48,9 +49,7 @@ public function createAnalysisDriver() */ public function createScwsDriver() { - return new ScwsTokenizer( - new Scws($this->app['config']['scout.tntsearch.tokenizer.scws']) - ); + return new ScwsTokenizer(new Scws($this->getConfig('scws'))); } /** @@ -63,6 +62,17 @@ public function createDefaultDriver() return new Tokenizer; } + /** + * Get the TNTSearch tokenizer configuration. + * + * @param string $name + * @return array + */ + protected function getConfig($name) + { + return $this->app['config']["scout.tntsearch.tokenizer.{$name}"]; + } + /** * Get the default session driver name. * @@ -70,6 +80,6 @@ public function createDefaultDriver() */ public function getDefaultDriver() { - return $this->app['config']['scout.tntsearch.tokenizer.driver']; + return $this->getConfig('driver'); } }