Skip to content

Commit a3762f3

Browse files
committed
update
1 parent df0867d commit a3762f3

File tree

3 files changed

+48
-9
lines changed

3 files changed

+48
-9
lines changed

src/main/java/org/ansj/elasticsearch/index/analysis/AnsjAnalyzerProvider.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package org.ansj.elasticsearch.index.analysis;
22

3+
import org.ansj.elasticsearch.index.config.AnsjElasticConfigurator;
34
import org.ansj.lucene6.AnsjAnalyzer;
45
import org.apache.logging.log4j.Logger;
56
import org.elasticsearch.common.inject.Inject;
@@ -9,6 +10,8 @@
910
import org.elasticsearch.index.IndexSettings;
1011
import org.elasticsearch.index.analysis.AbstractIndexAnalyzerProvider;
1112

13+
import java.util.Map;
14+
1215
public class AnsjAnalyzerProvider extends AbstractIndexAnalyzerProvider<AnsjAnalyzer> {
1316

1417
private static final Logger LOG = Loggers.getLogger(AnsjAnalyzerProvider.class);
@@ -21,9 +24,15 @@ public AnsjAnalyzerProvider(IndexSettings indexSettings, @Assisted String name,
2124

2225
Settings settings2 = indexSettings.getSettings().getAsSettings("index.analysis.tokenizer." + name());
2326

24-
LOG.debug("instance analyzer settings : {}", settings2.getAsMap());
27+
Map<String, String> args = settings2.getAsMap();
28+
if (args.isEmpty()) {
29+
args = AnsjElasticConfigurator.getDefaults();
30+
args.put("type", name());
31+
}
32+
33+
LOG.debug("instance analyzer settings : {}", args);
2534

26-
analyzer = new AnsjAnalyzer(settings2.getAsMap());
35+
analyzer = new AnsjAnalyzer(args);
2736
}
2837

2938
@Override

src/main/java/org/ansj/elasticsearch/index/analysis/AnsjTokenizerTokenizerFactory.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
package org.ansj.elasticsearch.index.analysis;
2121

22+
import org.ansj.elasticsearch.index.config.AnsjElasticConfigurator;
2223
import org.ansj.lucene6.AnsjAnalyzer;
2324
import org.apache.logging.log4j.Logger;
2425
import org.apache.lucene.analysis.Tokenizer;
@@ -29,6 +30,8 @@
2930
import org.elasticsearch.index.IndexSettings;
3031
import org.elasticsearch.index.analysis.AbstractTokenizerFactory;
3132

33+
import java.util.Map;
34+
3235
public class AnsjTokenizerTokenizerFactory extends AbstractTokenizerFactory {
3336

3437
private static final Logger LOG = Loggers.getLogger(AnsjTokenizerTokenizerFactory.class);
@@ -42,8 +45,14 @@ public AnsjTokenizerTokenizerFactory(IndexSettings indexSettings, @Assisted Stri
4245
public Tokenizer create() {
4346
Settings settings = indexSettings.getSettings().getAsSettings("index.analysis.tokenizer." + name());
4447

45-
LOG.debug("instance tokenizer settings : {}", settings.getAsMap());
48+
Map<String, String> args = settings.getAsMap();
49+
if (args.isEmpty()) {
50+
args = AnsjElasticConfigurator.getDefaults();
51+
args.put("type", name());
52+
}
53+
54+
LOG.debug("instance tokenizer settings : {}", args);
4655

47-
return AnsjAnalyzer.getTokenizer(null, settings.getAsMap());
56+
return AnsjAnalyzer.getTokenizer(null, args);
4857
}
4958
}

src/main/java/org/ansj/elasticsearch/index/config/AnsjElasticConfigurator.java

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,12 @@
22

33
import org.ansj.dic.PathToStream;
44
import org.ansj.elasticsearch.plugin.AnalysisAnsjPlugin;
5-
import org.ansj.library.AmbiguityLibrary;
6-
import org.ansj.library.DicLibrary;
7-
import org.ansj.library.StopLibrary;
8-
import org.ansj.library.SynonymsLibrary;
5+
import org.ansj.library.*;
96
import org.ansj.splitWord.analysis.ToAnalysis;
107
import org.ansj.util.MyStaticValue;
118
import org.apache.logging.log4j.Logger;
129
import org.elasticsearch.SpecialPermission;
10+
import org.elasticsearch.common.collect.MapBuilder;
1311
import org.elasticsearch.common.inject.Inject;
1412
import org.elasticsearch.common.logging.Loggers;
1513
import org.elasticsearch.common.settings.Settings;
@@ -132,7 +130,7 @@ private void preheat() {
132130
*
133131
* @param map
134132
*/
135-
private static void setGlobalVar(Map<String, String> map) {
133+
private void setGlobalVar(Map<String, String> map) {
136134
// 是否开启人名识别
137135
if (map.containsKey("isNameRecognition")) {
138136
MyStaticValue.isNameRecognition = Boolean.valueOf(map.get("isNameRecognition"));
@@ -174,4 +172,27 @@ public void reloadConfig() {
174172
LOG.info("to remove AmbiguityLibrary keys not in MyStaticValue.ENV");
175173
AmbiguityLibrary.keys().removeIf(key -> !MyStaticValue.ENV.containsKey(key));
176174
}
175+
176+
/**
177+
* 默认配置
178+
*/
179+
public static Map<String, String> getDefaults() {
180+
return MapBuilder.<String, String>newMapBuilder()
181+
// 是否开启人名识别
182+
.put("isNameRecognition", MyStaticValue.isNameRecognition.toString())
183+
// 是否开启数字识别
184+
.put("isNumRecognition", MyStaticValue.isNumRecognition.toString())
185+
// 是否数字和量词合并
186+
.put("isQuantifierRecognition", MyStaticValue.isQuantifierRecognition.toString())
187+
// 是否显示真实词语
188+
.put("isRealName", MyStaticValue.isRealName.toString())
189+
// 是否用户辞典不加载相同的词
190+
.put("isSkipUserDefine", String.valueOf(MyStaticValue.isSkipUserDefine))
191+
.put(CrfLibrary.DEFAULT, CrfLibrary.DEFAULT)
192+
.put(DicLibrary.DEFAULT, DicLibrary.DEFAULT)
193+
.put(StopLibrary.DEFAULT, StopLibrary.DEFAULT)
194+
.put(SynonymsLibrary.DEFAULT, SynonymsLibrary.DEFAULT)
195+
.put(AmbiguityLibrary.DEFAULT, AmbiguityLibrary.DEFAULT)
196+
.map();
197+
}
177198
}

0 commit comments

Comments
 (0)