博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Luence简单实现2
阅读量:6910 次
发布时间:2019-06-27

本文共 1616 字,大约阅读时间需要 5 分钟。

上一篇是基于内存存储的,这次的例子是基于本地存储索引库。

上一次的代码稍微修改,代码如下:

//创建词法分析器

Analyzer analyzer = new StandardAnalyzer();
//索引库路径
Path path = new File("D:\\123").toPath();
//确定索引文件的位置,方式如下为 本地文件存储
Directory directory = FSDirectory.open(path);

//索引文件的写入

IndexWriterConfig config = new IndexWriterConfig(analyzer);
IndexWriter iwriter = new IndexWriter(directory, config);
//目标资源文件
File docFile = new File("F:\\API文档");
for(File f : docFile.listFiles()){
Document document = new Document();
System.out.println("path------"+f.getPath());
Field field = new Field("path", f.getPath(),TextField.TYPE_STORED);
document.add(field);
iwriter.addDocument(document);
}
iwriter.close();
System.out.println("----");
//索引目录流对象创建
DirectoryReader ireader = DirectoryReader.open(directory);
//创建搜索对象
IndexSearcher isearcher = new IndexSearcher(ireader);
//查询解析器,第一个参数是默认的搜索域
QueryParser parser = new QueryParser("path", analyzer);
Query query = parser.parse("Java");
//模糊查询
Term term = new Term("path","Java");
FuzzyQuery fuzzyQuery=new FuzzyQuery(term);
//执行搜索,取前一百条符合记录的数据
TopDocs top = isearcher.search(fuzzyQuery, 100);
ScoreDoc[] hits = top.scoreDocs;
System.out.println(hits.length);
for (int i = 0; i < hits.length; i++) {
  Document hitDoc = isearcher.doc(hits[i].doc);
  System.out.println("[Document="+hitDoc+",file:"+hitDoc.get("path")+"].");
  System.out.println("查询出的结果是:"+hitDoc.get("path"));
}
ireader.close();
directory.close();

 运行结果如下:

代码执行,会在所指的本地索引目录下生成索引文件:

 

注意:程序每执行一次就会重复增加索引文件进去,会出现重复搜索结果,所以将来肯定是用定时器去生成索引的。

 

将来使用到Luence,会实际业务需求需要怎么使用,就要具体情况具体分析了,万变不离其宗,总是用到最基础的那些东西。

 

如有不正确之处,欢迎指正。

转载于:https://www.cnblogs.com/Kevin-1992/p/5811925.html

你可能感兴趣的文章
射频卡机井灌溉控制器特点
查看>>
solidity智能合约[49]-安全-溢出***
查看>>
Centos时间同步问题
查看>>
Spring Cloud - 关于Feign的常见问题总结
查看>>
百晓生详解nginx(下)nginx在实际生产环境中的应用(该帖连载更新)
查看>>
解决大数据难题 阿里云MaxCompute获科技大奖
查看>>
爬虫笔记3:requests库使用
查看>>
Linux 基础知识(七)
查看>>
创建私有CA
查看>>
(最简单)红米手机3S 3X的usb调试模式在哪里打开的流程
查看>>
如何将PDF压缩有什么简单的方法
查看>>
Java数据结构和算法(五)——队列
查看>>
jQuery
查看>>
Java实现爬虫示例
查看>>
JNA 基础篇<二> 结构体
查看>>
电脑上怎么将PDF图纸文件快速转换成DWG格式CAD图纸?
查看>>
Docker部署微服务详解
查看>>
我的友情链接
查看>>
MySQL常用函数大全
查看>>
以MYSQL作为HIVE的元数据库,配置HIVE的远程连接
查看>>