第一个Lucene 3.6 (3.X) 入门实例

运行lucene所需要的JAR包
lucene-core-3.6.0.jar(核心包)
lucene-analyzers-3.6.0.jar(分词器)
lucene-highlighter-3.6.0.jar(高亮)
lucene-memory-3.6.0.jar(高亮)


public class HelloWord {
public static void createIndexFile() {
IndexWriter indexWriter=null;
try {
// 需要的分词器
Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_36);
// 创建的是哪个版本的IndexWriterConfig
IndexWriterConfig indexWriterConfig = new IndexWriterConfig(
Version.LUCENE_36, analyzer);
// 创建系统文件----- ./ 当前路径下的
Directory directory = new SimpleFSDirectory(new File("./indexDir/"));
indexWriter = new IndexWriter(directory,indexWriterConfig);
//获取实体对象
Article article=new Article(11,"最XX的城市","XX");
//indexWriter添加索引
Document doc=new Document();
//文本中添加内容 标题 内容
/*doc.add(new Field("title","中国的首都在哪里",Store.YES,Index.ANALYZED));
doc.add(new Field("content","中国的首都在北京",Store.YES,Index.ANALYZED));*/
doc.add(new Field("id",article.getId().toString(),Store.YES,Index.ANALYZED));
doc.add(new Field("title",article.getTitle().toString(),Store.YES,Index.ANALYZED));
doc.add(new Field("content",article.getContent().toString(),Store.YES,Index.ANALYZED));
//添加到索引中去
indexWriter.addDocument(doc);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(indexWriter!=null){
try {
indexWriter.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
//如果查询是需要用到解析器,那解析器必须和创建时的解析器相同
public static void searchIndexFileResult() throws IOException {
List
articles=new ArrayList
();
//得到索引的目录
Directory directory = new SimpleFSDirectory(new File("./indexDir/"));
//根据目录打开一个indexReader
IndexReader indexReader=IndexReader.open(directory);
//System.out.println(indexReader.maxDoc());
//获取最小值的document对象
//Document doc=indexReader.document(0);
//获取最大值的document对象
//Document doc=indexReader.document(indexReader.maxDoc()-1);
//document对象的get(字段名称)方法获取字段的值
/*System.out.println(doc.get("id"));
System.out.println(doc.get("title"));
System.out.println(doc.get("content"));*/
int n=indexReader.maxDoc();
for(int i=0;i Document doc=indexReader.document(i);
Article article=new Article();
if(doc.get("id")==null){
System.out.println("id为空");
}else{
article.setId(Integer.parseInt(doc.get("id")));
article.setTitle(doc.get("title"));
article.setContent(doc.get("content"));
articles.add(article);
}
}
for(Article article:articles){
System.out.println(article.toString());
}
}
public static void main(String[] args) throws IOException {
// 建立要索引的文件
// createIndexFile();
// 从索引文件中查询数据
searchIndexFileResult();
// 获得结果,然后交由相关应用程序处理
}
}

你可能感兴趣的:(Lucene)