package test;
import java.io.IOException;
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.FieldType;
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.index.Term;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.ScoreDoc;
import org.apache.lucene.search.TermQuery;
import org.apache.lucene.search.TopDocs;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.RAMDirectory;
import org.apache.lucene.util.Version;
public class Lucene4ApiText {
public static final FieldType TYPE_NOT_STORED = new FieldType();
public static final FieldType TYPE_STORED = new FieldType();
static {
TYPE_NOT_STORED.setIndexed(true);
TYPE_NOT_STORED.setTokenized(true);
TYPE_NOT_STORED.freeze();
TYPE_STORED.setIndexed(true);
TYPE_STORED.setTokenized(true);
TYPE_STORED.setStored(true);
TYPE_STORED.freeze();
}
public static void main(String[] args) throws IOException {
//索引
Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_40);
Directory dir = new RAMDirectory();
IndexWriterConfig iwc = new IndexWriterConfig(Version.LUCENE_40,
analyzer);
iwc.setOpenMode(OpenMode.CREATE);
IndexWriter writer = new IndexWriter(dir, iwc);
for(int i=0;i<10;i++){
Document document = new Document();
document.add(new Field("content","索引"+i,TYPE_STORED));
writer.addDocument(document);
}
writer.close();
//搜索
IndexReader reader = DirectoryReader.open(dir);
IndexSearcher searcher = new IndexSearcher(reader);
try {
Query query = new TermQuery(new Term("content", "索"));
TopDocs topDocs = searcher.search(query, 10);
int total = topDocs.totalHits;
System.out.println("total=" + total);
for(ScoreDoc doc : topDocs.scoreDocs){
int i = doc.doc;
Document docu = searcher.doc(i);
System.out.println(docu.get("content"));
}
} finally {
System.out.println("end");
}
}
}
import java.io.IOException;
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.FieldType;
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.index.Term;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.ScoreDoc;
import org.apache.lucene.search.TermQuery;
import org.apache.lucene.search.TopDocs;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.RAMDirectory;
import org.apache.lucene.util.Version;
public class Lucene4ApiText {
public static final FieldType TYPE_NOT_STORED = new FieldType();
public static final FieldType TYPE_STORED = new FieldType();
static {
TYPE_NOT_STORED.setIndexed(true);
TYPE_NOT_STORED.setTokenized(true);
TYPE_NOT_STORED.freeze();
TYPE_STORED.setIndexed(true);
TYPE_STORED.setTokenized(true);
TYPE_STORED.setStored(true);
TYPE_STORED.freeze();
}
public static void main(String[] args) throws IOException {
//索引
Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_40);
Directory dir = new RAMDirectory();
IndexWriterConfig iwc = new IndexWriterConfig(Version.LUCENE_40,
analyzer);
iwc.setOpenMode(OpenMode.CREATE);
IndexWriter writer = new IndexWriter(dir, iwc);
for(int i=0;i<10;i++){
Document document = new Document();
document.add(new Field("content","索引"+i,TYPE_STORED));
writer.addDocument(document);
}
writer.close();
//搜索
IndexReader reader = DirectoryReader.open(dir);
IndexSearcher searcher = new IndexSearcher(reader);
try {
Query query = new TermQuery(new Term("content", "索"));
TopDocs topDocs = searcher.search(query, 10);
int total = topDocs.totalHits;
System.out.println("total=" + total);
for(ScoreDoc doc : topDocs.scoreDocs){
int i = doc.doc;
Document docu = searcher.doc(i);
System.out.println(docu.get("content"));
}
} finally {
System.out.println("end");
}
}
}