diff --git a/pom.xml b/pom.xml
index f790a29..3eabd70 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,10 +6,10 @@
4.0.0
org.elasticsearch
elasticsearch-analysis-ik
- 1.6.2
+ 1.7.0
jar
IK Analyzer for ElasticSearch
- 2009
+ 2011
2.1.1
diff --git a/src/main/assemblies/plugin.xml b/src/main/assemblies/plugin.xml
index 7e061d9..92ac569 100644
--- a/src/main/assemblies/plugin.xml
+++ b/src/main/assemblies/plugin.xml
@@ -1,10 +1,16 @@
-
zip
false
+
+
+ ${project.basedir}/config
+ /config
+
+
+
${project.basedir}/src/main/resources/plugin-descriptor.properties
diff --git a/src/main/java/org/elasticsearch/plugin/analysis/ik/AnalysisIkPlugin.java b/src/main/java/org/elasticsearch/plugin/analysis/ik/AnalysisIkPlugin.java
index 89540d2..b2c3981 100644
--- a/src/main/java/org/elasticsearch/plugin/analysis/ik/AnalysisIkPlugin.java
+++ b/src/main/java/org/elasticsearch/plugin/analysis/ik/AnalysisIkPlugin.java
@@ -23,11 +23,6 @@ import static java.rmi.Naming.bind;
public class AnalysisIkPlugin extends Plugin {
- private final Settings settings;
- @Inject
- public AnalysisIkPlugin(Settings settings){
- this.settings = settings;
- }
@Override public String name() {
return "analysis-ik";
@@ -43,7 +38,4 @@ public class AnalysisIkPlugin extends Plugin {
return Collections.singletonList(new IKIndicesAnalysisModule());
}
-// public void onModule(AnalysisModule module) {
-// module.addProcessor(new IkAnalysisBinderProcessor());
-// }
}
diff --git a/src/main/java/org/wltea/analyzer/cfg/Configuration.java b/src/main/java/org/wltea/analyzer/cfg/Configuration.java
index 9b5ed03..89a258c 100644
--- a/src/main/java/org/wltea/analyzer/cfg/Configuration.java
+++ b/src/main/java/org/wltea/analyzer/cfg/Configuration.java
@@ -4,11 +4,15 @@
package org.wltea.analyzer.cfg;
import org.elasticsearch.common.inject.Inject;
+import org.elasticsearch.common.io.PathUtils;
import org.elasticsearch.common.logging.ESLogger;
import org.elasticsearch.common.logging.Loggers;
import org.elasticsearch.env.Environment;
+import org.elasticsearch.plugin.analysis.ik.AnalysisIkPlugin;
import java.io.*;
+import java.net.URL;
+import java.nio.file.Path;
import java.util.ArrayList;
import java.util.InvalidPropertiesFormatException;
import java.util.List;
@@ -31,12 +35,12 @@ public class Configuration {
environment = env;
- File fileConfig= new File(environment.configFile().toFile(), FILE_NAME);
+ Path fileConfig = PathUtils.get(getDictRoot(), FILE_NAME);
InputStream input = null;
try {
- input = new FileInputStream(fileConfig);
+ input = new FileInputStream(fileConfig.toFile());
} catch (FileNotFoundException e) {
logger.error("ik-analyzer",e);
}
@@ -60,7 +64,7 @@ public class Configuration {
if(filePaths != null){
for(String filePath : filePaths){
if(filePath != null && !"".equals(filePath.trim())){
- File file=new File("ik",filePath.trim());
+ Path file = PathUtils.get("ik", filePath.trim());
extDictFiles.add(file.toString());
}
@@ -97,7 +101,7 @@ public class Configuration {
if(filePaths != null){
for(String filePath : filePaths){
if(filePath != null && !"".equals(filePath.trim())){
- File file=new File("ik",filePath.trim());
+ Path file = PathUtils.get("ik", filePath.trim());
extStopWordDictFiles.add(file.toString());
}
@@ -121,11 +125,13 @@ public class Configuration {
}
}
}
- }
+ }
return remoteExtStopWordDictFiles;
}
- public File getDictRoot() {
- return environment.configFile().toFile();
+ public String getDictRoot() {
+ return PathUtils.get(
+ new File(AnalysisIkPlugin.class.getProtectionDomain().getCodeSource().getLocation().getPath()).getParent(),"config")
+ .toAbsolutePath().toString();
}
}
diff --git a/src/main/java/org/wltea/analyzer/dic/Dictionary.java b/src/main/java/org/wltea/analyzer/dic/Dictionary.java
index 0248d32..3000830 100644
--- a/src/main/java/org/wltea/analyzer/dic/Dictionary.java
+++ b/src/main/java/org/wltea/analyzer/dic/Dictionary.java
@@ -32,6 +32,7 @@ import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
+import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@@ -45,6 +46,7 @@ import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
+import org.elasticsearch.common.io.PathUtils;
import org.elasticsearch.common.logging.ESLogger;
import org.elasticsearch.common.logging.Loggers;
import org.wltea.analyzer.cfg.Configuration;
@@ -220,11 +222,11 @@ public class Dictionary {
_MainDict = new DictSegment((char)0);
//读取主词典文件
- File file= new File(configuration.getDictRoot(), Dictionary.PATH_DIC_MAIN);
+ Path file = PathUtils.get(configuration.getDictRoot(), Dictionary.PATH_DIC_MAIN);
InputStream is = null;
try {
- is = new FileInputStream(file);
+ is = new FileInputStream(file.toFile());
} catch (FileNotFoundException e) {
e.printStackTrace();
}
@@ -269,9 +271,9 @@ public class Dictionary {
for(String extDictName : extDictFiles){
//读取扩展词典文件
logger.info("[Dict Loading]" + extDictName);
- File file=new File(configuration.getDictRoot(), extDictName);
+ Path file = PathUtils.get(configuration.getDictRoot(), extDictName);
try {
- is = new FileInputStream(file);
+ is = new FileInputStream(file.toFile());
} catch (FileNotFoundException e) {
logger.error("ik-analyzer",e);
}
@@ -385,11 +387,11 @@ public class Dictionary {
_StopWords = new DictSegment((char)0);
//读取主词典文件
- File file= new File(configuration.getDictRoot(), Dictionary.PATH_DIC_STOP);
+ Path file = PathUtils.get(configuration.getDictRoot(), Dictionary.PATH_DIC_STOP);
InputStream is = null;
try {
- is = new FileInputStream(file);
+ is = new FileInputStream(file.toFile());
} catch (FileNotFoundException e) {
e.printStackTrace();
}
@@ -427,9 +429,9 @@ public class Dictionary {
logger.info("[Dict Loading]" + extStopWordDictName);
//读取扩展词典文件
- file=new File(configuration.getDictRoot(), extStopWordDictName);
+ file=PathUtils.get(configuration.getDictRoot(), extStopWordDictName);
try {
- is = new FileInputStream(file);
+ is = new FileInputStream(file.toFile());
} catch (FileNotFoundException e) {
logger.error("ik-analyzer",e);
}
@@ -493,10 +495,10 @@ public class Dictionary {
//建立一个量词典实例
_QuantifierDict = new DictSegment((char)0);
//读取量词词典文件
- File file=new File(configuration.getDictRoot(),Dictionary.PATH_DIC_QUANTIFIER);
+ Path file = PathUtils.get(configuration.getDictRoot(), Dictionary.PATH_DIC_QUANTIFIER);
InputStream is = null;
try {
- is = new FileInputStream(file);
+ is = new FileInputStream(file.toFile());
} catch (FileNotFoundException e) {
logger.error("ik-analyzer",e);
}
@@ -529,10 +531,10 @@ public class Dictionary {
private void loadSurnameDict(){
_SurnameDict = new DictSegment((char)0);
- File file=new File(configuration.getDictRoot(),Dictionary.PATH_DIC_SURNAME);
+ Path file = PathUtils.get(configuration.getDictRoot(), Dictionary.PATH_DIC_SURNAME);
InputStream is = null;
try {
- is = new FileInputStream(file);
+ is = new FileInputStream(file.toFile());
} catch (FileNotFoundException e) {
logger.error("ik-analyzer",e);
}
@@ -566,10 +568,10 @@ public class Dictionary {
private void loadSuffixDict(){
_SuffixDict = new DictSegment((char)0);
- File file=new File(configuration.getDictRoot(),Dictionary.PATH_DIC_SUFFIX);
+ Path file = PathUtils.get(configuration.getDictRoot(), Dictionary.PATH_DIC_SUFFIX);
InputStream is = null;
try {
- is = new FileInputStream(file);
+ is = new FileInputStream(file.toFile());
} catch (FileNotFoundException e) {
logger.error("ik-analyzer",e);
}
@@ -602,10 +604,10 @@ public class Dictionary {
private void loadPrepDict(){
_PrepDict = new DictSegment((char)0);
- File file=new File(configuration.getDictRoot(),Dictionary.PATH_DIC_PREP);
+ Path file = PathUtils.get(configuration.getDictRoot(), Dictionary.PATH_DIC_PREP);
InputStream is = null;
try {
- is = new FileInputStream(file);
+ is = new FileInputStream(file.toFile());
} catch (FileNotFoundException e) {
logger.error("ik-analyzer",e);
}