java使用lucene_Lucene简单使用
1、简介:Lucence是一个文本检索的引擎工具包,我们可以再项目中添加进来做些简单的文本条目搜索,但它不是一个完整的全文检索引擎,例如Solr、ElasticSearch等。
2、使用如下:
Analyzer analyzer = new IKAnalyzer()//这里使用IKAnalyzer分词器
IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_40, analyzer );//IndexWriter的配置类,版本号和分词器设置
String indexDir= /apps/indexdir/;//索引文件的生成目录
File indexFile = new File(indexDir);
if(!indexFile.exists()){
indexFile.mkdir();
}
Directory directory = new MMapDirectory(indexFile);//索引文件放在内存里面,加快访问速度
IndexWriter writer = new IndexWriter(directory, config);//构造IndexWriter
//将docment文档依次添加到writer里面去
for(;;;){
Document doc = new Document();
doc.add(new LongField("id",xx,Field.Store.YES));//索引部分只存储id
doc.add(new TextField("content",xx,Field.Store.NO));
writer.addDocument(doc);
}
//到这里生成索引的步骤已经完成
//下面开始检索的步骤
File indexFile = new File(indexDir);
Directory dirctory = new MMapDirectory(indexFile);
IndexReader reader = DirectoryReader.open(dirctory);//获取indexReader
IndexSearcher searcher = new IndexSearcher(reader);//得到IndexSearcher
QueryParser parser = new QueryParser(Version.LUCENE_40, "content", analyzer);//检索filed为content的parser
Query query = parser.parse(xx);//xx是你要检索的内容
TopDocs docs = searcher.search(query, null, resultSize);//resultSize是你要检索条目的返回最大值
ScoreDoc[] hits = docs.scoreDocs;//返回结果数组,返回结果是按score分值从高到低排列的
for(int i=0;i
Document doc = searcher.doc(hits[i].doc);
Integer id = Integer.parseInt(doc.get("id"));
system.out.println(doc.get("content"));//检索出来的文本
}
文本检索的创建和搜索到这里就结束了。
您会了吗?
java使用lucene_Lucene简单使用相关推荐
- Java中的简单工厂模式(转)
Java中的简单工厂模式 举两个例子以快速明白Java中的简单工厂模式: 女娲抟土造人 话说:"天地开辟,未有人民,女娲抟土为人."女娲需要用土造出一个个的人,但在女娲造出人之前, ...
- jsp java 登陆_jsp+java servlet实现简单用户登录
jsp+java servlet实现简单用户登录(使用数据库,包括注册页面) 功能介绍 本项目通过使用jsp和servlet实现简单的用户登录.主要逻辑为:如果用户不存在,则首先进行注册(注册信息同步 ...
- java编写存钱_用Java编写一个简单的存款
package desposit.money; public class DespositMoney { public static void main(String[] args) { Custom ...
- Java语言实现简单FTP软件------源码放送(十三)
Java语言实现简单FTP软件------>FTP协议分析(一) Java语言实现简单FTP软件------>FTP软件效果图预览之下载功能(二) Java语言实现简单FTP软件----- ...
- Java中的简单浮点数类型float和double不能够进行精确运算
在java中,简单的浮点类型float和double是不能够进行运算.我们先看下面的两个程序代码: 代码一: import java.util.Scanner; class Circle { doub ...
- 用java写一个简单的区块链(下)
用java写一个简单的区块链(下) 2018年03月29日 21:44:35 java派大星 阅读数:725 标签: 区块链java 更多 个人分类: 区块链 版权声明:本文为博主原创文章,转载请标明 ...
- Java消息系统简单设计与实现
前言:由于导师在我的毕设项目里加了消息系统(本来想水水就过的..),没办法...来稍微研究研究吧..简单简单... 需求分析 我的毕设是一个博客系统,类似于简书这样的,所以消息系统也类似,在用户的消息 ...
- 如何复制java卡,使用java做一个简单的集卡程序
使用java做一个简单的集卡程序 本次设想的是要集齐4张卡,每张卡的概率都是25%,如果每个用户集齐需要多少次才能集合完毕 public class Test { public static void ...
- java写一个搜索引擎_搜索引擎—-Java实现一个简单的网络爬虫
Java实现一个简单的爬虫程序. package SearchCrawler;import java.util.*;import java.net.*;import java.io.*;import ...
最新文章
- AI开学第一课!CMU深度学习秋季课程开课了(附PPT 、视频)
- 利用反射给JAVABEAN实例赋值
- C语言加取址符的作用,C语言中指针和取地址符的关系
- pandas删除满足条件的行_入门Pandas练习
- sqlplus中利用spool生成带日期的文件名
- spring mvc原理_Spring常见问题整理
- java程序结构_java程序结构
- linux管理进程和计划任务,Linux进程和计划任务管理
- 国内程序员加班严重!听听外国网友怎么说。
- chromedriver放在哪个目录下_python | Linux各目录及每个目录的详细介绍 - MR_黄Python之路...
- PHP报错:Invalid body indentation level (expecting an indentation level of at least 4)
- Javascript格式化工具
- java 页眉页脚_Java 添加Word页眉、页脚
- Android使用LAME Mp3编码
- 趣店罗敏:从寒门贵子到面临退市 再到抢占预制菜新风口
- python中ifelse语句怎么写_pythonifelse语句怎么写
- android开发相册代码,Android开发之简单的电子相册实现
- 国开计算机应用基础中考答案,国开电大 计算机应用基础(本) 形考一答案
- 日常:如何修改网页源代码
- 【虚拟语气练习题】对过去的虚拟
热门文章
- arduino判断是否连接串口_Arduino-串口函数Serial
- [转贴] 网络硬盘“G宝盘”使用体验
- 阅读 | 003《知识图谱发展报告2022》(三)实体抽取
- 【数据可视化(图形绘制)攻略】——配对样本T检验/Wilcoxon配对秩检验
- Equals()和运算符==的区别
- 联机交易与批量交易、批处理和流处理
- 【文本挖掘】业绩预告原因·其二
- 如何使用asp开发微信小程序
- LJM-II漏电脉冲继电器
- php 线程周期,进程线程,CPU核心数,时间片轮转机制解读