"Lucene" Examples
Lucene
Lucene is a popular open-source text search engine library for Java, used in many search engines. Here are 5 usage examples:
1. Basic Search
java
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.TopDocs;
// Create an index and search for a specific phrase
IndexSearcher searcher new IndexSearcher(new DirIndexReader(new File("index")));
Query q new TermQuery(new Term("title", "hello"));
TopDocs results searcher.search(q, 10);
2. Detailed Search
java
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.queryParser.ParseException;
import org.apache.lucene.search.BooleanClause;
import org.apache.lucene.search.BooleanQuery;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.TopDocs;
// Search for documents containing either "hello" or "world"
IndexSearcher searcher new IndexSearcher(new DirIndexReader(new File("index")));
BooleanQuery booleanQuery new BooleanQuery();
BooleanClause clause1 new BooleanClause(new TermQuery(new Term("title", "hello")), BooleanClause.Occur.SHOULD);
BooleanClause clause2 new BooleanClause(new TermQuery(new Term("title", "world")), BooleanClause.Occur.SHOULD);
booleanQuery.add(clause1, clause2);
TopDocs results searcher.search(booleanQuery, 10);
3. Indexing Documents
java
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;
// Create a new index writer to write to the index
IndexWriter writer new IndexWriter(new File("index"), new IndexWriterConfig(new StandardAnalyzer()));
Document doc new Document();
doc.add(new Field("title", "This is a test document", Field.Store.YES, Field.Index.ANALYZED));
writer.addDocument(doc);
4. Term Frequency Inversion
java
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.TermFrequency;
import org.apache.lucene.search.TermFrequency.TermFreq;
// Search