mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-05-09 23:51:34 +08:00
优化TokenizerEngine使用IK分词器支持并发
This commit is contained in:
parent
90772da8d9
commit
9bb370c476
@ -2,7 +2,7 @@
|
|||||||
# 🚀Changelog
|
# 🚀Changelog
|
||||||
|
|
||||||
-------------------------------------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------------------------------------
|
||||||
# 5.8.24(2023-12-13)
|
# 5.8.24(2023-12-14)
|
||||||
|
|
||||||
### 🐣新特性
|
### 🐣新特性
|
||||||
* 【cache 】 Cache增加get重载,可自定义超时时间(issue#I8G0DL@Gitee)
|
* 【cache 】 Cache增加get重载,可自定义超时时间(issue#I8G0DL@Gitee)
|
||||||
@ -12,6 +12,7 @@
|
|||||||
* 【extra 】 SpringUtil增加getProperty重载(pr#1122@Gitee)
|
* 【extra 】 SpringUtil增加getProperty重载(pr#1122@Gitee)
|
||||||
* 【core 】 FileTypeUtil增加null判断(issue#3419@Github)
|
* 【core 】 FileTypeUtil增加null判断(issue#3419@Github)
|
||||||
* 【core 】 DateUtil.parse支持毫秒时间戳(issue#I8NMP7@Gitee)
|
* 【core 】 DateUtil.parse支持毫秒时间戳(issue#I8NMP7@Gitee)
|
||||||
|
* 【extra 】 优化TokenizerEngine使用IK分词器支持并发(pr#3427@Github)
|
||||||
|
|
||||||
### 🐞Bug修复
|
### 🐞Bug修复
|
||||||
* 【core 】 修复LocalDateTime#parseDate未判断空问题问题(issue#I8FN7F@Gitee)
|
* 【core 】 修复LocalDateTime#parseDate未判断空问题问题(issue#I8FN7F@Gitee)
|
||||||
|
@ -1,10 +1,8 @@
|
|||||||
package cn.hutool.extra.tokenizer.engine.ikanalyzer;
|
package cn.hutool.extra.tokenizer.engine.ikanalyzer;
|
||||||
|
|
||||||
import cn.hutool.core.util.ReflectUtil;
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.hutool.extra.tokenizer.Result;
|
import cn.hutool.extra.tokenizer.Result;
|
||||||
import cn.hutool.extra.tokenizer.TokenizerEngine;
|
import cn.hutool.extra.tokenizer.TokenizerEngine;
|
||||||
import org.wltea.analyzer.cfg.Configuration;
|
|
||||||
import org.wltea.analyzer.core.IKSegmenter;
|
import org.wltea.analyzer.core.IKSegmenter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -15,27 +13,25 @@ import org.wltea.analyzer.core.IKSegmenter;
|
|||||||
*/
|
*/
|
||||||
public class IKAnalyzerEngine implements TokenizerEngine {
|
public class IKAnalyzerEngine implements TokenizerEngine {
|
||||||
|
|
||||||
private final IKSegmenter seg;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 构造
|
* 构造
|
||||||
*/
|
*/
|
||||||
public IKAnalyzerEngine() {
|
public IKAnalyzerEngine() {
|
||||||
this(new IKSegmenter(null, true));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 构造
|
* 构造
|
||||||
*
|
*
|
||||||
* @param seg {@link IKSegmenter}
|
* @param seg {@link IKSegmenter}
|
||||||
|
* @deprecated 并发问题,导致无法共用IKSegmenter,因此废弃
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public IKAnalyzerEngine(IKSegmenter seg) {
|
public IKAnalyzerEngine(IKSegmenter seg) {
|
||||||
this.seg = seg;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Result parse(CharSequence text) {
|
public Result parse(CharSequence text) {
|
||||||
IKSegmenter copySeg = new IKSegmenter(null, (Configuration) ReflectUtil.getFieldValue(this.seg, "cfg"));
|
final IKSegmenter copySeg = new IKSegmenter(null, true);
|
||||||
copySeg.reset(StrUtil.getReader(text));
|
copySeg.reset(StrUtil.getReader(text));
|
||||||
return new IKAnalyzerResult(copySeg);
|
return new IKAnalyzerResult(copySeg);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user