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简单使用相关推荐

  1. Java中的简单工厂模式(转)

    Java中的简单工厂模式 举两个例子以快速明白Java中的简单工厂模式: 女娲抟土造人 话说:"天地开辟,未有人民,女娲抟土为人."女娲需要用土造出一个个的人,但在女娲造出人之前, ...

  2. jsp java 登陆_jsp+java servlet实现简单用户登录

    jsp+java servlet实现简单用户登录(使用数据库,包括注册页面) 功能介绍 本项目通过使用jsp和servlet实现简单的用户登录.主要逻辑为:如果用户不存在,则首先进行注册(注册信息同步 ...

  3. java编写存钱_用Java编写一个简单的存款

    package desposit.money; public class DespositMoney { public static void main(String[] args) { Custom ...

  4. Java语言实现简单FTP软件------源码放送(十三)

    Java语言实现简单FTP软件------>FTP协议分析(一) Java语言实现简单FTP软件------>FTP软件效果图预览之下载功能(二) Java语言实现简单FTP软件----- ...

  5. Java中的简单浮点数类型float和double不能够进行精确运算

    在java中,简单的浮点类型float和double是不能够进行运算.我们先看下面的两个程序代码: 代码一: import java.util.Scanner; class Circle { doub ...

  6. 用java写一个简单的区块链(下)

    用java写一个简单的区块链(下) 2018年03月29日 21:44:35 java派大星 阅读数:725 标签: 区块链java 更多 个人分类: 区块链 版权声明:本文为博主原创文章,转载请标明 ...

  7. Java消息系统简单设计与实现

    前言:由于导师在我的毕设项目里加了消息系统(本来想水水就过的..),没办法...来稍微研究研究吧..简单简单... 需求分析 我的毕设是一个博客系统,类似于简书这样的,所以消息系统也类似,在用户的消息 ...

  8. 如何复制java卡,使用java做一个简单的集卡程序

    使用java做一个简单的集卡程序 本次设想的是要集齐4张卡,每张卡的概率都是25%,如果每个用户集齐需要多少次才能集合完毕 public class Test { public static void ...

  9. java写一个搜索引擎_搜索引擎—-Java实现一个简单的网络爬虫

    Java实现一个简单的爬虫程序. package SearchCrawler;import java.util.*;import java.net.*;import java.io.*;import ...

最新文章

  1. AI开学第一课!CMU深度学习秋季课程开课了(附PPT 、视频)
  2. 利用反射给JAVABEAN实例赋值
  3. C语言加取址符的作用,C语言中指针和取地址符的关系
  4. pandas删除满足条件的行_入门Pandas练习
  5. sqlplus中利用spool生成带日期的文件名
  6. spring mvc原理_Spring常见问题整理
  7. java程序结构_java程序结构
  8. linux管理进程和计划任务,Linux进程和计划任务管理
  9. 国内程序员加班严重!听听外国网友怎么说。
  10. chromedriver放在哪个目录下_python | Linux各目录及每个目录的详细介绍 - MR_黄Python之路...
  11. PHP报错:Invalid body indentation level (expecting an indentation level of at least 4)
  12. Javascript格式化工具
  13. java 页眉页脚_Java 添加Word页眉、页脚
  14. Android使用LAME Mp3编码
  15. 趣店罗敏:从寒门贵子到面临退市 再到抢占预制菜新风口
  16. python中ifelse语句怎么写_pythonifelse语句怎么写
  17. android开发相册代码,Android开发之简单的电子相册实现
  18. 国开计算机应用基础中考答案,国开电大 计算机应用基础(本) 形考一答案
  19. 日常:如何修改网页源代码
  20. 【虚拟语气练习题】对过去的虚拟

热门文章

  1. arduino判断是否连接串口_Arduino-串口函数Serial
  2. [转贴] 网络硬盘“G宝盘”使用体验
  3. 阅读 | 003《知识图谱发展报告2022》(三)实体抽取
  4. 【数据可视化(图形绘制)攻略】——配对样本T检验/Wilcoxon配对秩检验
  5. Equals()和运算符==的区别
  6. 联机交易与批量交易、批处理和流处理
  7. 【文本挖掘】业绩预告原因·其二
  8. 如何使用asp开发微信小程序
  9. LJM-II漏电脉冲继电器
  10. php 线程周期,进程线程,CPU核心数,时间片轮转机制解读