博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
lucene 3.5.0 入门笔记
阅读量:7058 次
发布时间:2019-06-28

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

  hot3.png

1. lucene-3.5.0.jar

2. 新建目录C:\testsource,新建目录C:\testindex。

3.在C:\testsource下新建test1.txt, test2.txt,内容分别为:“商务休闲品牌男装西裤衬衫”,“潮流休闲品牌女装裙子大衣”。

4.创建索引

import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStreamReader;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;import org.apache.lucene.index.IndexWriterConfig;import org.apache.lucene.index.IndexWriterConfig.OpenMode;import org.apache.lucene.store.Directory;import org.apache.lucene.store.FSDirectory;import org.apache.lucene.util.Version;/** * 给text文件建立索引 * @author liam.huang@foxmail.com */public class TextFileIndexer {		public static void main(String[] args) throws Exception{				//text文件路径		File sourceDir = new File("C:\\testsource");		File[] sourceFiles = sourceDir.listFiles();				//索引文件路径		File indexDir = new File("C:\\testindex");		Directory indexFilesDir = FSDirectory.open(indexDir);				//构建analyzer		Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_35);				//配置IndexWriter		IndexWriterConfig iwConfig = new IndexWriterConfig(Version.LUCENE_35, analyzer);		iwConfig.setOpenMode(OpenMode.CREATE);				//构建IndexWriter		IndexWriter indexWriter = new IndexWriter(indexFilesDir, iwConfig);				long startTime = new Date().getTime();		for(int i=0; i

输出结果:

File C:\testsource\test1.txt正在被索引......商务休闲品牌男装西裤衬衫File C:\testsource\test2.txt正在被索引......潮流休闲品牌女装裙子大衣花费了569 毫秒把文档增加到索引里面去!索引文件地址:C:\testsource

5.关键字检索

import java.io.File;import org.apache.lucene.analysis.Analyzer;import org.apache.lucene.analysis.standard.StandardAnalyzer;import org.apache.lucene.index.IndexReader;import org.apache.lucene.queryParser.QueryParser;import org.apache.lucene.search.IndexSearcher;import org.apache.lucene.search.Query;import org.apache.lucene.search.ScoreDoc;import org.apache.lucene.search.TopDocs;import org.apache.lucene.store.FSDirectory;import org.apache.lucene.util.Version;/** * 关键字检索 * @author liam.huang@foxmail.com */public class TextQuery {		public static void main(String[] args) throws Exception{				String queryString = "休闲 装";		//索引文件路径		String indexDir = "C:\\testindex";		IndexReader indexReader = IndexReader.open(FSDirectory.open(new File(indexDir)));		IndexSearcher indexSearcher = new IndexSearcher(indexReader);				Query query = null;		Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_35);		QueryParser queryParser = new QueryParser(Version.LUCENE_35, "body", analyzer);		queryParser.setDefaultOperator(QueryParser.AND_OPERATOR);		query = queryParser.parse(queryString);				ScoreDoc[] hits = null;		if(indexSearcher!=null){			//返回最多为10条记录 			TopDocs results = indexSearcher.search(query, 10);			hits = results.scoreDocs;			if(hits.length>0){				System.out.println("找到:" + hits.length + " 个结果!");			}else{				System.out.println("没有找到");			}			indexSearcher.close();		}			}}

输出结果:

找到:2 个结果!

转载于:https://my.oschina.net/lock0818/blog/380083

你可能感兴趣的文章
《Spark核心技术与高级应用》——导读
查看>>
首席技术官 (CTO) 比普通程序员强在哪
查看>>
《交互式程序设计 第2版》一1.4 艺术与交互
查看>>
《脱颖而出——成功网店经营之道》一2.2 进货攻略
查看>>
X.Org 可能将失去它的域名 x.org
查看>>
《Adobe Photoshop CC经典教程(彩色版)》—第4课4.2节概述
查看>>
互联网企业安全高级指南3.1 从零开始
查看>>
后台权限管理的菜单设计
查看>>
linux搭建git服务器
查看>>
【原创】Percona 之 tcprstat 安装及使用
查看>>
oracle中drop后的表清楚表的含义
查看>>
js笔记——js数据类型转换
查看>>
Hadoop2.5.2集群部署(完全分布式)
查看>>
禁止sshd暴力尝试方案
查看>>
PHP数组
查看>>
rundeck创建普通apitoken
查看>>
./sdb devices ???????????? no permissions
查看>>
Zstandard:一种新的无损压缩算法
查看>>
PHP打包下载多个TXT文件
查看>>
学习路由技术的第五节课
查看>>