提交 33fb6ad6 编写于 作者: weixin_43283383's avatar weixin_43283383

fix null exception and update to support es2.1

上级 ce6424dd
...@@ -11,7 +11,7 @@ Versions ...@@ -11,7 +11,7 @@ Versions
IK version | ES version IK version | ES version
-----------|----------- -----------|-----------
master | 2.1.0 -> master master | 2.1.0 -> master
1.5.1 | 2.1.0 1.6.0 | 2.1.0
1.5.0 | 2.0.0 1.5.0 | 2.0.0
1.4.1 | 1.7.2 1.4.1 | 1.7.2
1.4.0 | 1.6.0 1.4.0 | 1.6.0
...@@ -231,9 +231,10 @@ have fun. ...@@ -231,9 +231,10 @@ have fun.
```bash ```bash
git clone https://github.com/medcl/elasticsearch-analysis-ik git clone https://github.com/medcl/elasticsearch-analysis-ik
cd elasticsearch-analysis-ik cd elasticsearch-analysis-ik
mvn clean
mvn compile mvn compile
mvn package mvn package
copy file #{project_path}/elasticsearch-analysis-ik/target/releases/elasticsearch-analysis-ik-xxx-jar-with-dependencies.jar to your elasticsearch's folder: plugins/ik copy & unzip file #{project_path}/elasticsearch-analysis-ik/target/releases/elasticsearch-analysis-ik-xxx.zip to your elasticsearch's folder: plugins/ik
``` ```
Thanks Thanks
......
...@@ -6,14 +6,14 @@ ...@@ -6,14 +6,14 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>org.elasticsearch</groupId> <groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch-analysis-ik</artifactId> <artifactId>elasticsearch-analysis-ik</artifactId>
<version>1.5.1</version> <version>1.6.0</version>
<packaging>jar</packaging> <packaging>jar</packaging>
<description>IK Analyzer for ElasticSearch</description> <description>IK Analyzer for ElasticSearch</description>
<inceptionYear>2009</inceptionYear> <inceptionYear>2009</inceptionYear>
<properties> <properties>
<elasticsearch.version>2.1.0</elasticsearch.version> <elasticsearch.version>2.1.0</elasticsearch.version>
<maven.compiler.target>1.7</maven.compiler.target>
<elasticsearch.assembly.descriptor>${project.basedir}/src/main/assemblies/plugin.xml</elasticsearch.assembly.descriptor> <elasticsearch.assembly.descriptor>${project.basedir}/src/main/assemblies/plugin.xml</elasticsearch.assembly.descriptor>
<elasticsearch.plugin.classname>org.elasticsearch.plugin.analysis.ik.AnalysisIkPlugin</elasticsearch.plugin.classname> <elasticsearch.plugin.classname>org.elasticsearch.plugin.analysis.ik.AnalysisIkPlugin</elasticsearch.plugin.classname>
<elasticsearch.plugin.jvm>true</elasticsearch.plugin.jvm> <elasticsearch.plugin.jvm>true</elasticsearch.plugin.jvm>
......
...@@ -18,6 +18,6 @@ public class IkAnalysisBinderProcessor extends AnalysisModule.AnalysisBinderProc ...@@ -18,6 +18,6 @@ public class IkAnalysisBinderProcessor extends AnalysisModule.AnalysisBinderProc
@Override @Override
public void processTokenizers(TokenizersBindings tokenizersBindings) { public void processTokenizers(TokenizersBindings tokenizersBindings) {
tokenizersBindings.processTokenizer("ik_tokenizer", IkTokenizerFactory.class); tokenizersBindings.processTokenizer("ik", IkTokenizerFactory.class);
} }
} }
package org.elasticsearch.index.analysis; package org.elasticsearch.index.analysis;
import org.elasticsearch.common.inject.Inject; import org.elasticsearch.common.inject.Inject;
import org.elasticsearch.common.inject.assistedinject.Assisted;
import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.env.Environment; import org.elasticsearch.env.Environment;
import org.elasticsearch.index.Index; import org.elasticsearch.index.Index;
import org.elasticsearch.index.settings.IndexSettingsService;
import org.wltea.analyzer.cfg.Configuration; import org.wltea.analyzer.cfg.Configuration;
import org.wltea.analyzer.dic.Dictionary; import org.wltea.analyzer.dic.Dictionary;
import org.wltea.analyzer.lucene.IKAnalyzer; import org.wltea.analyzer.lucene.IKAnalyzer;
...@@ -13,10 +15,10 @@ public class IkAnalyzerProvider extends AbstractIndexAnalyzerProvider<IKAnalyzer ...@@ -13,10 +15,10 @@ public class IkAnalyzerProvider extends AbstractIndexAnalyzerProvider<IKAnalyzer
private boolean useSmart=false; private boolean useSmart=false;
@Inject @Inject
public IkAnalyzerProvider(Index index, Settings indexSettings,Environment env, String name, Settings settings) { public IkAnalyzerProvider(Index index, IndexSettingsService indexSettingsService, Environment env, @Assisted String name, @Assisted Settings settings) {
super(index, indexSettings, name, settings); super(index, indexSettingsService.getSettings(), name, settings);
Dictionary.initial(new Configuration(env)); Dictionary.initial(new Configuration(env));
useSmart = settings.get("use_smart", "false").equals("true"); useSmart = indexSettingsService.getSettings().get("use_smart", "false").equals("true");
analyzer=new IKAnalyzer(useSmart); analyzer=new IKAnalyzer(useSmart);
} }
......
...@@ -6,6 +6,7 @@ import org.elasticsearch.common.inject.assistedinject.Assisted; ...@@ -6,6 +6,7 @@ import org.elasticsearch.common.inject.assistedinject.Assisted;
import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.env.Environment; import org.elasticsearch.env.Environment;
import org.elasticsearch.index.Index; import org.elasticsearch.index.Index;
import org.elasticsearch.index.settings.IndexSettingsService;
import org.wltea.analyzer.cfg.Configuration; import org.wltea.analyzer.cfg.Configuration;
import org.wltea.analyzer.dic.Dictionary; import org.wltea.analyzer.dic.Dictionary;
import org.wltea.analyzer.lucene.IKTokenizer; import org.wltea.analyzer.lucene.IKTokenizer;
...@@ -15,9 +16,9 @@ public class IkTokenizerFactory extends AbstractTokenizerFactory { ...@@ -15,9 +16,9 @@ public class IkTokenizerFactory extends AbstractTokenizerFactory {
private boolean useSmart=false; private boolean useSmart=false;
@Inject @Inject
public IkTokenizerFactory(Index index, Settings indexSettings, Environment env, @Assisted String name, @Assisted Settings settings) { public IkTokenizerFactory(Index index, IndexSettingsService indexSettingsService,Environment env, @Assisted String name, @Assisted Settings settings) {
super(index, indexSettings, name, settings); super(index, indexSettingsService.getSettings(), name, settings);
this.settings=settings; this.settings=indexSettingsService.getSettings();
Dictionary.initial(new Configuration(env)); Dictionary.initial(new Configuration(env));
} }
......
...@@ -4,10 +4,13 @@ import org.apache.lucene.analysis.Tokenizer; ...@@ -4,10 +4,13 @@ import org.apache.lucene.analysis.Tokenizer;
import org.elasticsearch.common.component.AbstractComponent; import org.elasticsearch.common.component.AbstractComponent;
import org.elasticsearch.common.inject.Inject; import org.elasticsearch.common.inject.Inject;
import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.env.Environment;
import org.elasticsearch.index.analysis.AnalyzerScope; import org.elasticsearch.index.analysis.AnalyzerScope;
import org.elasticsearch.index.analysis.PreBuiltAnalyzerProviderFactory; import org.elasticsearch.index.analysis.PreBuiltAnalyzerProviderFactory;
import org.elasticsearch.index.analysis.PreBuiltTokenizerFactoryFactory; import org.elasticsearch.index.analysis.PreBuiltTokenizerFactoryFactory;
import org.elasticsearch.index.analysis.TokenizerFactory; import org.elasticsearch.index.analysis.TokenizerFactory;
import org.wltea.analyzer.cfg.Configuration;
import org.wltea.analyzer.dic.Dictionary;
import org.wltea.analyzer.lucene.IKAnalyzer; import org.wltea.analyzer.lucene.IKAnalyzer;
import org.wltea.analyzer.lucene.IKTokenizer; import org.wltea.analyzer.lucene.IKTokenizer;
...@@ -21,9 +24,12 @@ public class IKIndicesAnalysis extends AbstractComponent { ...@@ -21,9 +24,12 @@ public class IKIndicesAnalysis extends AbstractComponent {
@Inject @Inject
public IKIndicesAnalysis(final Settings settings, public IKIndicesAnalysis(final Settings settings,
IndicesAnalysisService indicesAnalysisService) { IndicesAnalysisService indicesAnalysisService,Environment env) {
super(settings); super(settings);
Dictionary.initial(new Configuration(env));
this.useSmart = settings.get("use_smart", "false").equals("true"); this.useSmart = settings.get("use_smart", "false").equals("true");
indicesAnalysisService.analyzerProviderFactories().put("ik", indicesAnalysisService.analyzerProviderFactories().put("ik",
new PreBuiltAnalyzerProviderFactory("ik", AnalyzerScope.GLOBAL, new PreBuiltAnalyzerProviderFactory("ik", AnalyzerScope.GLOBAL,
new IKAnalyzer(useSmart))); new IKAnalyzer(useSmart)));
......
package org.elasticsearch.plugin.analysis.ik; package org.elasticsearch.plugin.analysis.ik;
import org.elasticsearch.common.inject.AbstractModule; import org.elasticsearch.common.inject.AbstractModule;
import org.elasticsearch.common.inject.Inject;
import org.elasticsearch.common.inject.Module; import org.elasticsearch.common.inject.Module;
import org.elasticsearch.common.logging.ESLogger; import org.elasticsearch.common.logging.ESLogger;
import org.elasticsearch.common.logging.ESLoggerFactory; import org.elasticsearch.common.logging.ESLoggerFactory;
import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.env.Environment;
import org.elasticsearch.index.analysis.AnalysisModule; import org.elasticsearch.index.analysis.AnalysisModule;
import org.elasticsearch.index.analysis.IkAnalysisBinderProcessor; import org.elasticsearch.index.analysis.IkAnalysisBinderProcessor;
import org.elasticsearch.indices.analysis.IKIndicesAnalysisModule; import org.elasticsearch.indices.analysis.IKIndicesAnalysisModule;
import org.elasticsearch.plugins.Plugin; import org.elasticsearch.plugins.Plugin;
import org.wltea.analyzer.cfg.Configuration;
import org.wltea.analyzer.dic.Dictionary;
import java.nio.file.Path;
import java.util.Collection; import java.util.Collection;
import java.util.Collections; import java.util.Collections;
import java.util.logging.Logger; import java.util.logging.Logger;
...@@ -19,7 +24,7 @@ import static java.rmi.Naming.bind; ...@@ -19,7 +24,7 @@ import static java.rmi.Naming.bind;
public class AnalysisIkPlugin extends Plugin { public class AnalysisIkPlugin extends Plugin {
private final Settings settings; private final Settings settings;
@Inject
public AnalysisIkPlugin(Settings settings){ public AnalysisIkPlugin(Settings settings){
this.settings = settings; this.settings = settings;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册