java fst 入门 例子,Java FST.save方法代码示例
import org.apache.lucene.util.fst.FST; //导入方法依赖的package包/类
/**
*
* @param inputStream the input stream
* @param outputStream the output stream
* @throws IOException if compilation fails
*/
public void compile(InputStream inputStream, OutputStream outputStream) throws IOException {
final HashSet words = new HashSet<>();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8));
String line;
String last = null;
StringBuilder stringBuilder = new StringBuilder();
while ((line = reader.readLine()) != null) {
if (line.indexOf('#') >= 0) {
continue;
}
line = pattern.split(line)[0].trim();
line = line.toLowerCase();
if (line.equals(last)) {
continue;
}
last = line;
/*
* Add the word to the hash set in left-to-right characters order and reversed
* for easier matching later on.
*/
stringBuilder.setLength(0);
stringBuilder.append(line);
final int len = stringBuilder.length();
stringBuilder.append('>');
words.add(new BytesRef(stringBuilder));
stringBuilder.setLength(len);
stringBuilder.reverse().append('
words.add(new BytesRef(stringBuilder));
}
reader.close();
final BytesRef [] all = new BytesRef[words.size()];
words.toArray(all);
Arrays.sort(all, BytesRef::compareTo);
final Object nothing = NoOutputs.getSingleton().getNoOutput();
final Builder builder = new Builder<>(INPUT_TYPE.BYTE4, NoOutputs.getSingleton());
final IntsRefBuilder intsRef = new IntsRefBuilder();
for (BytesRef bytesRef : all) {
intsRef.clear();
intsRef.copyUTF8Bytes(bytesRef);
builder.add(intsRef.get(), nothing);
}
final FST fst = builder.finish();
try (final OutputStreamDataOutput out = new OutputStreamDataOutput(outputStream)) {
fst.save(out);
}
}
java fst 入门 例子,Java FST.save方法代码示例相关推荐
- java.util.zip 用法,Java压缩文件工具类ZipUtil使用方法代码示例
本文实例通过Java的Zip输入输出流实现压缩和解压文件,前一部分代码实现获取文件路径,压缩文件名的更改等,具体如下: package com.utility.zip; import java.io. ...
- java gc 例子_Java GC.drawImage方法代码示例
import org.eclipse.swt.graphics.GC; //导入方法依赖的package包/类 void paintElement(PaintEvent e) { GC g = e.g ...
- JAVA里tokens意思_Java TokenMetadata.sortedTokens方法代码示例
import org.apache.cassandra.locator.TokenMetadata; //导入方法依赖的package包/类 /** * Get the "primary r ...
- java中isolate时间_Java HikariDataSource.setIdleTimeout方法代码示例
import com.zaxxer.hikari.HikariDataSource; //导入方法依赖的package包/类 private HikariDataSource createHikari ...
- java getattribute为空_Java TransMeta.getAttribute方法代码示例
import org.pentaho.di.trans.TransMeta; //导入方法依赖的package包/类 @Override public void getData( TransMeta ...
- java接收rowtype类型_Java PhysType.getJavaRowType方法代码示例
import org.apache.calcite.adapter.enumerable.PhysType; //导入方法依赖的package包/类 public Result implementSp ...
- Java程序中fix time_Java Position.setFixTime方法代码示例
import org.traccar.model.Position; //导入方法依赖的package包/类 @Override protected Object decode( Channel ch ...
- java okhttp设置超时_Java OkHttpClient.setWriteTimeout方法代码示例
import com.squareup.okhttp.OkHttpClient; //导入方法依赖的package包/类 @Bean @ConditionalOnMissingBean public ...
- java jtree 监听_Java JTree.addTreeExpansionListener方法代码示例
import javax.swing.JTree; //导入方法依赖的package包/类 public PackageBrowser(JFrame frame, String title, bool ...
最新文章
- kafka 异步发送阻塞_Kafka学习一
- 循环获取结构体中的健名与值的实现
- 【Flask项目】sqlalchemy原生sql查询,返回字典形式数据
- python中导入包中的__init__文件夹的一个重要作用(去年对文件名的导入)
- Java+MyEclipse+Tomcat (一)配置过程及jsp网站开发入门
- 求职OMG——大学生就业指导与技能
- kali利用msf工具对ms08-067漏洞入侵靶机(win xp2)
- 磁卡门锁怎么配卡_样式多的铜工艺品怎么设计请查看_江西南昌皇巢|铜门||别墅铜门|...
- 石头剪子布(信息学奥赛一本通-T1132)
- javascript-练习-数组数据存li中
- 猛男教你写代码_猛男程序员,鼓存储器和1960年代机器代码的取证分析
- 厦门大学计算机学硕复试,【图片】一战厦大计算机上岸,经验帖。慢更【考研吧】_百度贴吧...
- 使用EL表达式,显示Action中的数据
- 可靠性测试设备技术含量_电气自动化控制设备的可靠性测试(1)
- Oracle物理的体系结构
- 课程设计——企业网络项目搭建(上)
- 深度学习处理概率分布中常用的函数
- 一般纳税人和小规模纳税人哪个好?哪个更划算?
- 量子统计的正则分布和巨正则分布计算思路过程
- 【人工智能项目】深度学习实现图像多标签分类
热门文章
- 基于JAVA+SpringMVC+Mybatis+MYSQL的企业人事管理系统
- 基于JAVA+SpringMVC+Mybatis+MYSQL的旅游景点门票售票管理系统
- 基于JAVA+SpringBoot+Mybatis+MYSQL的在线点餐系统
- Dijkstra求最短路 II
- click 在网页测试手机模式下无效,不能执行。调成非手机模式即可
- 邮件协议POP3/IMAP/SMTP服务的区别
- iOS中Runtime简析
- [转]ListView滚动到底部自动加载数据
- C/C++ SQLite 之基础篇
- Scrapy爬虫报错AttributeError: ‘NoneType‘ object has no attribute ‘write‘