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

fix null exception and update to support es2.1

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