package com.fmr.search;
import java.io.File;
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.index.IndexWriter;
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.util.Version;
public class LuceneIndexer {
private static final Object MUTEX = new Object();
public static void main(String[] args) throws Exception {
LuceneIndexer luceneIndexer = new LuceneIndexer();
Person person = new Person();
person.setId("001");
person.setName("Tom");
person.setDescription("Tom lives in Boston");
luceneIndexer.create(person);
person = new Person();
person.setId("002");
person.setName("Tom");
person.setDescription("Tom lives in Boston");
luceneIndexer.create(person);
}
public void create(Person person) throws IOException {
synchronized (MUTEX) {
IndexWriter indexWriter = null;
Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_36);
IndexWriterConfig conf = new IndexWriterConfig(Version.LUCENE_36,
analyzer)
.setOpenMode(IndexWriterConfig.OpenMode.CREATE_OR_APPEND);
FSDirectory fsDir = FSDirectory.open(new File("LuceneIndex"));
indexWriter = new IndexWriter(fsDir, conf);
Document document = createDocument(person);
indexWriter.addDocument(document);
// if (indexWriter.maxDoc() % 100 == 0){
// indexWriter.forceMergeDeletes();
// }
indexWriter.commit();
indexWriter.close();
}
}
private Document createDocument(Person person) {
Document doc = new Document();
doc.add(new Field("person.id", String.valueOf(person.getId()),
Field.Store.YES, Field.Index.NOT_ANALYZED));
doc.add(new Field("person.name", String.valueOf(person.getName()),
Field.Store.YES, Field.Index.NOT_ANALYZED));
doc.add(new Field("person.description", String.valueOf(person
.getDescription()), Field.Store.NO, Field.Index.ANALYZED));
return doc;
}
}
import java.io.File;
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.index.IndexWriter;
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.util.Version;
public class LuceneIndexer {
private static final Object MUTEX = new Object();
public static void main(String[] args) throws Exception {
LuceneIndexer luceneIndexer = new LuceneIndexer();
Person person = new Person();
person.setId("001");
person.setName("Tom");
person.setDescription("Tom lives in Boston");
luceneIndexer.create(person);
person = new Person();
person.setId("002");
person.setName("Tom");
person.setDescription("Tom lives in Boston");
luceneIndexer.create(person);
}
public void create(Person person) throws IOException {
synchronized (MUTEX) {
IndexWriter indexWriter = null;
Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_36);
IndexWriterConfig conf = new IndexWriterConfig(Version.LUCENE_36,
analyzer)
.setOpenMode(IndexWriterConfig.OpenMode.CREATE_OR_APPEND);
FSDirectory fsDir = FSDirectory.open(new File("LuceneIndex"));
indexWriter = new IndexWriter(fsDir, conf);
Document document = createDocument(person);
indexWriter.addDocument(document);
// if (indexWriter.maxDoc() % 100 == 0){
// indexWriter.forceMergeDeletes();
// }
indexWriter.commit();
indexWriter.close();
}
}
private Document createDocument(Person person) {
Document doc = new Document();
doc.add(new Field("person.id", String.valueOf(person.getId()),
Field.Store.YES, Field.Index.NOT_ANALYZED));
doc.add(new Field("person.name", String.valueOf(person.getName()),
Field.Store.YES, Field.Index.NOT_ANALYZED));
doc.add(new Field("person.description", String.valueOf(person
.getDescription()), Field.Store.NO, Field.Index.ANALYZED));
return doc;
}
}