package com.test;
import java.io.File;
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.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.Searcher;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
public class Lucene24 {
public static void createIndex(Directory dir, Analyzer analyzer) {
try {
//参数依次:索引目录、分词工具、是否清空目录、字段值的最大长度(UNLImited即Interger.MaxValue)
IndexWriter writer = new IndexWriter(dir, analyzer, true,
IndexWriter.MaxFieldLength.UNLIMITED);
Document doc = new Document();
doc.add(new Field("name", "jack lucy", Field.Store.YES,
Field.Index.ANALYZED));
doc.add(new Field("country", "中国 美国", Field.Store.YES,
Field.Index.ANALYZED));
writer.addDocument(doc);
doc = new Document();
doc.add(new Field("name", "lucy lily", Field.Store.YES,
Field.Index.ANALYZED));
doc.add(new Field("country", "美国 日本", Field.Store.YES,
Field.Index.ANALYZED));
writer.addDocument(doc);
doc = new Document();
doc.add(new Field("name", "lily john", Field.Store.YES,
Field.Index.ANALYZED));
doc.add(new Field("country", "日本 韩国", Field.Store.YES,
Field.Index.ANALYZED));
writer.addDocument(doc);
doc = new Document();
doc.add(new Field("name", "john tom", Field.Store.YES,
Field.Index.ANALYZED));
doc.add(new Field("country", "韩国 法国", Field.Store.YES,
Field.Index.ANALYZED));
writer.addDocument(doc);
doc = new Document();
doc.add(new Field("name", "tom july", Field.Store.YES,
Field.Index.ANALYZED));
doc.add(new Field("country", "法国 德国", Field.Store.YES,
Field.Index.ANALYZED));
writer.addDocument(doc);
doc = new Document();
doc.add(new Field("name", "july kate", Field.Store.YES,
Field.Index.ANALYZED));
doc.add(new Field("country", "德国 英国", Field.Store.YES,
Field.Index.ANALYZED));
writer.addDocument(doc);
// writer.optimize();
writer.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void search(Directory dir, Analyzer analyzer) {
try {
Searcher searcher = new IndexSearcher(dir);
Query query = new QueryParser("country", analyzer).parse("美国");
//此处在2.0基础上有改动,此处必须传入一个返回条数,这里用searcher.maxDoc()表示返回所有条数。
ScoreDoc[] docs = searcher.search(query, searcher.maxDoc()).scoreDocs;
System.out.println(docs.length);;
Document doc;
for (int i = 0; i < docs.length; i++) {
doc = searcher.doc(docs[i].doc);
System.out.println(doc.get("country"));
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
try {
Analyzer analyzer = new StandardAnalyzer();
FSDirectory dir = FSDirectory.getDirectory(new File("C:\\Lucene_index"));
createIndex(dir, analyzer);
search(dir, analyzer);
dir.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
分享到:
相关推荐
Lucene2.4入门总结lucene2.4 人门 field 多条件搜索
java拼车网雏形(Ext2.0+SSH+oracle10g+lucene2.4)
Luene2.4版本在以前的基础上进行了不少的改动,性能上也提升了不少,这里边学习边写了一个简单的例子,给初学者行个方便!
lucene 2.4 jar lucene2.4版本的JAR包
能够直接运行的Lucene2.4样例以及全面注释; + Lucene中文文档,能够帮助你最快掌握Lucene2.4
ictclas4j for lucene 2.4 任何人不得将此用于商业用途,仅限个人学习研究之用.该开源项目遵循Apache License 2.0
庖丁解牛 源码 for Lucene 2.4
struts2 + spring2.5 + hibernate 3.2 + lucene 2.4 + compass 2.0 包含所有jar包,按readme.txt导入并运行即可 开始不用分了................
lucene2.4手册,是开发搜索引擎的好帮手.
lucene实例lucene实例lucene实例lucene实例lucene实例lucene实例lucene实例lucene实例lucene实例
NULL 博文链接:https://chenhua-1984.iteye.com/blog/380779
基于lucene 2.4简单的一个索引和搜索实例
Lucene2.4.1的源代码,包括core包和demos包的内容。
支持net4.0环境下运行,Lucene.net版本为3.0,PanGu版本为2.4
Lucene索引器实例Lucene索引器实例Lucene索引器实例Lucene索引器实例
lucene-core-2.4.0.jar,lucene-analyzer-2.4.0.jar,lucene-highlighter-2.4.0.jar,je-analysis-1.5.3.jar
Lucene操作数据库例子,通过JDBC程序+Lucene
通过lucene创建索引,然后进行各种搜索
lucene quartz 例子lucene quartz 例子lucene quartz 例子lucene quartz 例子lucene quartz 例子lucene quartz 例子lucene quartz 例子lucene quartz 例子lucene quartz 例子lucene quartz 例子