import java.io.File;
import java.io.IOException;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.Token;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.TextField;
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.Term;
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.store.Directory;
import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.store.RAMDirectory;
import org.apache.lucene.util.Version;
public class T {
public void baseConcept() {
//store
Directory directory;
//document
Document document;
Field field;
//index
Term term;
IndexReader reader;
IndexWriter writer;
//analysis
Analyzer analyzer;
Token token;
}
public static void createIndex() throws IOException {
//lucene-analyzers-common analysis.standard
Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_48);
//store the index in momoey
//Directory directory = new RAMDirectory();
//To store an index on disk ,use this instead
Directory d = FSDirectory.open(new File("/home/zcwangjb/tmp/lucene"));
IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_48, analyzer);
IndexWriter writer = new IndexWriter(d, config);
//
Document document = new Document();
String txt = "This is the text to be indexed";
document.add(new Field("fieldname", txt, TextField.TYPE_STORED));
writer.addDocument(document);
writer.close();
writer.close();
d.close();
}
public static void readIndex() throws IOException, ParseException {
Directory d = FSDirectory.open(new File("/home/zcwangjb/tmp/lucene"));
DirectoryReader reader = DirectoryReader.open(d);
IndexSearcher ir = new IndexSearcher(reader);
//
Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_48);
QueryParser parser = new QueryParser(Version.LUCENE_48, "fieldname", analyzer);
Query query = parser.parse("text");
ScoreDoc[] hits = ir.search(query, null, 1000).scoreDocs;
System.out.println("hits:" + hits.length);
for (int i = 0; i < hits.length; i++) {
Document document = ir.doc(hits[i].doc);
System.out.println("doc:" + document.get("fieldname"));
}
reader.close();
d.close();
}
public static void main(String[] args) throws IOException, ParseException {
// createIndex();
readIndex();
}
}
lucene基本使用
最新推荐文章于 2022-12-17 19:59:39 发布