lucene3.0
来源:互联网 发布:阿里云上传速度慢 编辑:程序博客网 时间:2024/05/16 19:54
做了两个简单的例子
创建索引
- package com.langhua;
- import java.io.File;
- import java.io.FileReader;
- import java.io.IOException;
- import java.util.Date;
- import org.apache.lucene.analysis.standard.StandardAnalyzer;
- import org.apache.lucene.document.DateTools;
- import org.apache.lucene.document.Document;
- import org.apache.lucene.document.Field;
- import org.apache.lucene.index.IndexWriter;
- import org.apache.lucene.store.Directory;
- import org.apache.lucene.store.SimpleFSDirectory;
- import org.apache.lucene.util.Version;
- /**
- * 创建索引 Lucene 3.0+
- * @author Administrator
- *
- */
- public class Indexer {
- /**
- * @param args
- * @throws IOException
- */
- public static void main(String[] args) throws IOException {
- //保存索引文件的地方
- String indexDir = "F://indexDir";
- //将要搜索TXT文件的地方
- String dateDir = "F://dateDir";
- IndexWriter indexWriter = null;
- //创建Directory对象
- Directory dir = new SimpleFSDirectory(new File(indexDir));
- //创建IndexWriter对象,第一个参数是Directory,第二个是分词器,第三个表示是否是创建,如果为false为在此基础上面修改,第四表示表示分词的最大值,比如说new MaxFieldLength(2),就表示两个字一分,一般用IndexWriter.MaxFieldLength.LIMITED
- indexWriter = new IndexWriter(dir,new StandardAnalyzer(Version.LUCENE_30),true,IndexWriter.MaxFieldLength.UNLIMITED);
- File[] files = new File(dateDir).listFiles();
- for (int i = 0; i < files.length; i++) {
- Document doc = new Document();
- //创建Field对象,并放入doc对象中
- doc.add(new Field("contents", new FileReader(files[i])));
- doc.add(new Field("filename", files[i].getName(),
- Field.Store.YES, Field.Index.NOT_ANALYZED));
- doc.add(new Field("indexDate",DateTools.dateToString(new Date(), DateTools.Resolution.DAY),Field.Store.YES,Field.Index.NOT_ANALYZED));
- //写入IndexWriter
- indexWriter.addDocument(doc);
- }
- //查看IndexWriter里面有多少个索引
- System.out.println("numDocs"+indexWriter.numDocs());
- indexWriter.close();
- }
- }
搜索索引 Lucene 3.0+
- package com.langhua;
- import java.io.File;
- import java.io.IOException;
- import org.apache.lucene.analysis.standard.StandardAnalyzer;
- import org.apache.lucene.document.Document;
- import org.apache.lucene.queryParser.ParseException;
- 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.Directory;
- import org.apache.lucene.store.SimpleFSDirectory;
- import org.apache.lucene.util.Version;
- /**
- * 搜索索引 Lucene 3.0+
- * @author Administrator
- *
- */
- public class Searcher {
- public static void main(String[] args) throws IOException, ParseException {
- //保存索引文件的地方
- String indexDir = "F://indexDir";
- Directory dir = new SimpleFSDirectory(new File(indexDir));
- //创建 IndexSearcher对象,相比IndexWriter对象,这个参数就要提供一个索引的目录就行了
- IndexSearcher indexSearch = new IndexSearcher(dir);
- //创建QueryParser对象,第一个参数表示Lucene的版本,第二个表示搜索Field的字段,第三个表示搜索使用分词器
- QueryParser queryParser = new QueryParser(Version.LUCENE_30,
- "contents", new StandardAnalyzer(Version.LUCENE_30));
- //生成Query对象
- Query query = queryParser.parse("langhua9527");
- //搜索结果 TopDocs里面有scoreDocs[]数组,里面保存着索引值
- TopDocs hits = indexSearch.search(query, 10);
- //hits.totalHits表示一共搜到多少个
- System.out.println("找到了"+hits.totalHits+"个");
- //循环hits.scoreDocs数据,并使用indexSearch.doc方法把Document还原,再拿出对应的字段的值
- for (int i = 0; i < hits.scoreDocs.length; i++) {
- ScoreDoc sdoc = hits.scoreDocs[i];
- Document doc = indexSearch.doc(sdoc.doc);
- System.out.println(doc.get("filename"));
- }
- indexSearch.close();
- }
- }
- lucene3.0
- Lucene3.0改进
- Lucene3.0项目---贴吧
- lucene3.0简单解析
- Lucene3.0分词系统
- LUCENE3.0(转)
- Lucene3.0入门
- Lucene3.0 优化操作
- lucene3.0范围查找TermRangeQuery
- 【转贴】Lucene3.0 简单解析
- lucene3.0分词结果显示
- lucene3.0 分词结果展示
- lucene3.0范围查找TermRangeQuery
- Lucene3.0的主要变化
- 传智播客之Lucene3.0详解
- LUCENE3.0 的二次查询
- lucene3.0分词原理和分词系统
- lucene3.0代码实例(一)
- java 动态代理 结合demo直通车
- C++中extern “C”含义深层探索
- Hibernate将Enum枚举类型映射为Int类型
- mysqldump 备份数据库命令
- android - 1 环境搭建与配置
- lucene3.0
- test
- Spring配置文件详解
- testt
- java 动态代理 像jsp一样重用java代码
- 批处理bat文件的写作教程及实例
- quilt-cut
- 如何解决xp文件夹权限,数据库只读,“ASP.NET 未被授权访问所请求的资源”
- NOX的使用之学习篇【一】