最近在看lucene,其实也没什么需求,就是想看看而已。本着给网站添加点内容的原则将学习的过程记录下来,也算是对自己的督促,要是哪天不更新了也很正常,因为我很懒。。好了,以下正式开始
1.准备
这没什么好说的,首先需要jdk,jre,这是废话,当然还需要去下载lucene的包,然后就没有然后了,什么都不需要准备。
2.开始
好了,上代码。
这是一个demo,包含两个主要方法,建立索引与查找方法,我们为d:/lucene/example文件夹下的文件建立索引,索引文件保存到index文件夹下。这里使用3.5版本的lucene
1 package cn.javismay.index;
2 import java.io.File;
3 import java.io.FileReader;
4 import org.apache.lucene.analysis.standard.StandardAnalyzer;
5 import org.apache.lucene.document.Document;
6 import org.apache.lucene.document.Field;
7 import org.apache.lucene.index.IndexReader;
8 import org.apache.lucene.index.IndexWriter;
9 import org.apache.lucene.index.IndexWriterConfig;
10 import org.apache.lucene.queryParser.QueryParser;
11 import org.apache.lucene.search.IndexSearcher;
12 import org.apache.lucene.search.Query;
13 import org.apache.lucene.search.ScoreDoc;
14 import org.apache.lucene.search.TopDocs;
15 import org.apache.lucene.store.Directory;
16 import org.apache.lucene.store.FSDirectory;
17 import org.apache.lucene.util.Version;
18 public class LuceneDemo {
19 public void index() throws Exception {
20 // 1,创建Direction
21 Directory directory = FSDirectory.open(new File("d:/lucene/index"));// 这里为索引文件保存的位置
22 // 2,创建IndexReader
23 IndexWriterConfig iwc = new IndexWriterConfig(Version.LUCENE_35,
24 new StandardAnalyzer(Version.LUCENE_35));
25 IndexWriter writer = new IndexWriter(directory, iwc);
26 // 3,创建具体的Document对象
27 Document doc = null;
28 File f = new File("d:/lucene/example");// 这里保存的是需要建立索引的样例
29 for (File file : f.listFiles()) {
30 // 为内容,标题,路径建立索引
31 doc = new Document();
32 doc.add(new Field("content", new FileReader(file)));// 内容
33 doc.add(new Field("filename", file.getName(), Field.Store.YES,
34 Field.Index.NOT_ANALYZED));// 标题
35 doc.add(new Field("path", file.getAbsolutePath(), Field.Store.YES,
36 Field.Index.NOT_ANALYZED));// 路径
37 writer.addDocument(doc);
38 }
39 // 4,关闭
40 writer.close();
41 }
42 public void search() throws Exception {
1.准备
这没什么好说的,首先需要jdk,jre,这是废话,当然还需要去下载lucene的包,然后就没有然后了,什么都不需要准备。
2.开始
好了,上代码。
这是一个demo,包含两个主要方法,建立索引与查找方法,我们为d:/lucene/example文件夹下的文件建立索引,索引文件保存到index文件夹下。这里使用3.5版本的lucene
1 package cn.javismay.index;
2 import java.io.File;
3 import java.io.FileReader;
4 import org.apache.lucene.analysis.standard.StandardAnalyzer;
5 import org.apache.lucene.document.Document;
6 import org.apache.lucene.document.Field;
7 import org.apache.lucene.index.IndexReader;
8 import org.apache.lucene.index.IndexWriter;
9 import org.apache.lucene.index.IndexWriterConfig;
10 import org.apache.lucene.queryParser.QueryParser;
11 import org.apache.lucene.search.IndexSearcher;
12 import org.apache.lucene.search.Query;
13 import org.apache.lucene.search.ScoreDoc;
14 import org.apache.lucene.search.TopDocs;
15 import org.apache.lucene.store.Directory;
16 import org.apache.lucene.store.FSDirectory;
17 import org.apache.lucene.util.Version;
18 public class LuceneDemo {
19 public void index() throws Exception {
20 // 1,创建Direction
21 Directory directory = FSDirectory.open(new File("d:/lucene/index"));// 这里为索引文件保存的位置
22 // 2,创建IndexReader
23 IndexWriterConfig iwc = new IndexWriterConfig(Version.LUCENE_35,
24 new StandardAnalyzer(Version.LUCENE_35));
25 IndexWriter writer = new IndexWriter(directory, iwc);
26 // 3,创建具体的Document对象
27 Document doc = null;
28 File f = new File("d:/lucene/example");// 这里保存的是需要建立索引的样例
29 for (File file : f.listFiles()) {
30 // 为内容,标题,路径建立索引
31 doc = new Document();
32 doc.add(new Field("content", new FileReader(file)));// 内容
33 doc.add(new Field("filename", file.getName(), Field.Store.YES,
34 Field.Index.NOT_ANALYZED));// 标题
35 doc.add(new Field("path", file.getAbsolutePath(), Field.Store.YES,
36 Field.Index.NOT_ANALYZED));// 路径
37 writer.addDocument(doc);
38 }
39 // 4,关闭
40 writer.close();
41 }
42 public void search() throws Exception {