lucene的一段测试代码
来源:互联网 发布:网络光纤传输器 编辑:程序博客网 时间:2024/05/18 02:04
package com.test.cache.file;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
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.document.Field.Store;
import org.apache.lucene.document.LongField;
import org.apache.lucene.document.StoredField;
import org.apache.lucene.index.DirectoryReader;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.index.IndexWriterConfig.OpenMode;
import org.apache.lucene.queryparser.classic.ParseException;
import org.apache.lucene.queryparser.classic.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.FSDirectory;
import org.apache.lucene.util.Version;
public class IndexTest {
private static SimpleDateFormat dateFormat = new SimpleDateFormat("yyMMdd");
public static void writeIndex() {
String date = dateFormat.format(new Date());
File file = getIndexDir(date);
try {
Directory dir = FSDirectory.open(file);
Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_43);
IndexWriterConfig iwc = new IndexWriterConfig(Version.LUCENE_43,
analyzer);
iwc.setOpenMode(OpenMode.CREATE);
IndexWriter writer = new IndexWriter(dir, iwc);
Document doc = new Document();
byte[] pbContents = "warm up lucene".getBytes();
Field id = new LongField("id", 123456, Store.YES);
Field msg = new StoredField("msg", pbContents);
doc.add(id);
doc.add(msg);
writer.addDocument(doc);
writer.commit();
writer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private static File getIndexDir(String date) {
File idxDir = new File("../data/" + date);
if (!idxDir.exists()) {
idxDir.mkdirs();
}
return idxDir;
}
public static void search() {
String date = dateFormat.format(new Date());
File file = getIndexDir(date);
try {
IndexReader reader = DirectoryReader.open(FSDirectory.open(file));
IndexSearcher searcher = new IndexSearcher(reader);
Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_43);
QueryParser parser = new QueryParser(Version.LUCENE_43, "id",
analyzer);
Query query = parser.parse("123456");
TopDocs tops = searcher.search(query, 10);
for(ScoreDoc sc : tops.scoreDocs){
Document doc = searcher.doc(sc.doc);
System.out.println(doc.getField("id").stringValue());
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
writeIndex();
search();
}
}
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
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.document.Field.Store;
import org.apache.lucene.document.LongField;
import org.apache.lucene.document.StoredField;
import org.apache.lucene.index.DirectoryReader;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.index.IndexWriterConfig.OpenMode;
import org.apache.lucene.queryparser.classic.ParseException;
import org.apache.lucene.queryparser.classic.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.FSDirectory;
import org.apache.lucene.util.Version;
public class IndexTest {
private static SimpleDateFormat dateFormat = new SimpleDateFormat("yyMMdd");
public static void writeIndex() {
String date = dateFormat.format(new Date());
File file = getIndexDir(date);
try {
Directory dir = FSDirectory.open(file);
Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_43);
IndexWriterConfig iwc = new IndexWriterConfig(Version.LUCENE_43,
analyzer);
iwc.setOpenMode(OpenMode.CREATE);
IndexWriter writer = new IndexWriter(dir, iwc);
Document doc = new Document();
byte[] pbContents = "warm up lucene".getBytes();
Field id = new LongField("id", 123456, Store.YES);
Field msg = new StoredField("msg", pbContents);
doc.add(id);
doc.add(msg);
writer.addDocument(doc);
writer.commit();
writer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private static File getIndexDir(String date) {
File idxDir = new File("../data/" + date);
if (!idxDir.exists()) {
idxDir.mkdirs();
}
return idxDir;
}
public static void search() {
String date = dateFormat.format(new Date());
File file = getIndexDir(date);
try {
IndexReader reader = DirectoryReader.open(FSDirectory.open(file));
IndexSearcher searcher = new IndexSearcher(reader);
Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_43);
QueryParser parser = new QueryParser(Version.LUCENE_43, "id",
analyzer);
Query query = parser.parse("123456");
TopDocs tops = searcher.search(query, 10);
for(ScoreDoc sc : tops.scoreDocs){
Document doc = searcher.doc(sc.doc);
System.out.println(doc.getField("id").stringValue());
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
writeIndex();
search();
}
}
0 0
- lucene的一段测试代码
- 一段测试DiskIO的代码
- 没有的测试的一段代码
- 测试杀毒软件的一段代码![无毒无害]
- 一段测试网络是否连通的代码
- 测试 加入一段代码的效果
- 一段小的 shellcode 测试 代码
- linux下测试一段代码的执行时间
- 手机端测试touch的一段代码
- 测试锚点的一段代码
- 一段测试NSArray和NSDictionary的代码
- 观察arc效果的一段测试代码
- 封装测试一段代码的运行时间
- URL的一段测试代码(转)
- 一段代码的测试过程记录
- 一段代码测试杀毒软件
- Lucene 3.5 测试代码
- 自己无意中测试出的一段很有意思的代码!
- Java开源Html解析类库(转载)
- apns 服务器推送
- Please allow subclipse team to receive anonymous usage statistics for this eclipse instance
- 4.7.1:EL表达式
- 存储过程基本语法的小Demo
- lucene的一段测试代码
- Linux下高性能网络编程中的几个TCP/IP选项_SO_REUSEADDR、SO_RECVBUF、SO_SNDBUF、SO_KEEPALIVE、SO_LINGER、TCP_CORK、TCP_NODE
- 运行成功的最新进度条代码
- JavaScript 的 this
- 最高分是多少
- Redis 集成Spring(spring-data-redis)
- BZOJ 3933 CQOI2015 多项式 高精度
- Maya/3Ds MAX与OpenGL的联系
- jvm 关于初始化时<cinit> , <init>的调用。