import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
import java.util.Date;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexWriter;
public class TextFileIndexer {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO 自动生成方法存根
File fileDir=new File("D:\\chenzk\\lucene");
Analyzer luceneAnalyzer=new StandardAnalyzer();
//创建一个类StandardAnalyzer的一个实例,这个实例是从文本中提取索引项的
File indexDir = new File("C:\\luceneIndex");
IndexWriter indexWriter = new IndexWriter(indexDir,luceneAnalyzer,true);
//第一个参数是存储索引文件的路径,第二个参数是指定了在索引的过程中使用什么样的分词器,最后一个参数是一个布尔的参数如果
//为真表示要创建一个新的索引,如果值为假表示打开一个已经存在的索引
File [] textFiles=fileDir.listFiles();
long startTime=new Date().getTime();
//add documents to the index
for(int i=0;i<textFiles.length;i++)
{
if(textFiles[i].isFile()&&textFiles[i].getName().endsWith(".txt"))
{ //只要你能将要索引的文件转化成文本格式lucene就能为你的文档建立索引
System.out.println("File "+textFiles[i].getCanonicalPath()+" is being indexed");
Reader textReader=new FileReader(textFiles[i]);
//以下是如何添加一个文档到索引文件中
Document document=new Document();// 它是由一个或者多个Field组成,我们可以把它想象是一个实际文档
//实际的Field是实际文档一些属性,
document.add(Field.Text("content",textReader));//域的名称我们需要索引的文本文件的内容
document.add(Field.Text("path", textFiles[i].getPath()));//我们需要索引的文本文件的路径
indexWriter.addDocument(document);
}
}
indexWriter.optimize();
indexWriter.close();//当我们把文档添加到索引中后,不要忘记关闭索引,这样才保证Lucene把添加的文档写回到硬盘上。
long endTime=new Date().getTime();
System.out.println("It took "+(endTime-startTime)+" millseconds to create an index for the files in the directory "+fileDir.getPath()) ;
}
}
File D:\chenzk\lucene\1.txt is being indexed
File D:\chenzk\lucene\2.txt is being indexed
File D:\chenzk\lucene\3.txt is being indexed
File D:\chenzk\lucene\segments.txt is being indexed
It took 187 millseconds to create an index for the files in the directory D:\chenzk\lucene
请大家提供宝贵的意见!谢谢
分享到:
相关推荐
- **关闭IndexWriter**:完成索引过程后关闭`IndexWriter`,触发段的合并和优化。 #### 五、Lucene段合并(merge)过程分析 **1. 段合并过程总论** 段合并是Lucene维护索引完整性的一个重要环节,其主要目的是减少...
1. **索引(Index)**:一个`Index`可以看作是一个文件夹,其中包含了一系列相关的索引文件。 2. **段(Segment)**:一个`Index`可能由多个`Segment`组成。 3. **文档(Document)**:每个`Document`都是独立的索引单元,...
内容概要:本文档详细介绍了 DeepSeek 这一高效、经济的人工智能解决方案,旨在为企业端、产品端以及开发者提供深度技术支持。对于企业而言,DeepSeek 带来了显著的成本效益和生产效率提升;而对于具体的产品和服务,它增强了用户体验的质量。特别是针对开发者,文档深入浅出地讲解了如何利用 DeepSeek 实现自动化代码生成、改写等辅助开发功能,并且提供了具体的步骤指导以满足不同环境下的部署需求,包括直接通过官方API接入、本地私有化部署或借助云平台进行托管的方式。 适合人群:希望降低开发门槛,提高工作效率的软件工程师和技术团队。 使用场景及目标:开发者可以根据自身条件选择最适合自己的部署方案来整合 DeepSeek 技术,进而达到优化编码过程、减少人为错误的目的。 其他说明:文中还包括了许多实际操作的例子,如通过代码改写的实例来展示如何改进现有程序段落,还有详细的API使用指南帮助初学者快速上手DeepSeek。此外,还提供了大量外部参考资料链接以便进一步扩展知识和技能范围。
lusted_3cd_01_0318
Cherry Studio是一款支持多模型服务的 Windows/macOS GPT 客户端。通过与Ollama搭配,搭建个人本地AI大模型
chromedriver-win64-136.0.7058.0.zip
matlab程序代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
mellitz_3cd_01_1116
基于MATLAB的牛顿迭代法实现
steenman_01_0908
AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
stone_3ck_01a_0518
AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!
lusted_3cd_01_1117
管理层情感语调,或称为管理层语调,是一个在财务与会计领域中常用的概念,特别是在分析上市公司信息披露质量时。它主要指的是管理层在上市公司文字信息披露过程中,用词所体现出的情感倾向和可理解性。 本数据复刻了《财经研究》《中南财经政法大学学报》等顶级期刊的核心解释变量的做法。情感语调对企业未来盈余和未来绩效具有较强解释力、降低会计信息误定价、为分析师预测提供增量信息,而投资者也会对管理层情感语调做出积极反应。 情感语调1=(正面词汇数量-负面词汇数量)/词汇总量;数值越大,情感倾向越偏向正面积极。 情感语调2=(正面词汇数量-负面词汇数量)/(正面词汇数量+负面词汇数量);数值越大,情感倾向越偏向正面积极。 指标 证券代码、企业代码、年份、证券简称、行业代码、行业名称、正面词汇数量、负面词汇数量、词汇总量、句子数量、文字数量、情感语调1、情感语调2。
mellitz_3cd_02_0318
moore_01_0909
lusted_3ck_02a_0119
pimpinella_3cd_01_0916