List of usage examples for org.apache.lucene.index DirectoryReader open
public static DirectoryReader open(final IndexCommit commit, Map<String, String> readerAttributes) throws IOException
From source file:com.yida.framework.lucene5.facet.DistanceFacetsExample.java
License:Creative Commons License
/** * // w w w . j ava 2 s .c o m */ public void index() throws IOException { IndexWriter writer = new IndexWriter(indexDir, new IndexWriterConfig(new WhitespaceAnalyzer())); // ??(?FacetField) Document doc = new Document(); doc.add(new DoubleDocValuesField("latitude", 40.759011)); doc.add(new DoubleDocValuesField("longitude", -73.9844722)); writer.addDocument(doc); doc = new Document(); doc.add(new DoubleDocValuesField("latitude", 40.718266)); doc.add(new DoubleDocValuesField("longitude", -74.007819)); writer.addDocument(doc); doc = new Document(); doc.add(new DoubleDocValuesField("latitude", 40.7051157)); doc.add(new DoubleDocValuesField("longitude", -74.0088305)); writer.addDocument(doc); /*doc.add(new DoubleField("latitude", 40.759011, Field.Store.YES)); doc.add(new DoubleField("longitude", -73.9844722, Field.Store.YES)); writer.addDocument(doc); doc = new Document(); doc.add(new DoubleField("latitude", 40.718266, Field.Store.YES)); doc.add(new DoubleField("longitude", -74.007819, Field.Store.YES)); writer.addDocument(doc); doc = new Document(); doc.add(new DoubleField("latitude", 40.7051157, Field.Store.YES)); doc.add(new DoubleField("longitude", -74.0088305, Field.Store.YES)); writer.addDocument(doc); */ searcher = new IndexSearcher(DirectoryReader.open(writer, true)); writer.commit(); writer.close(); }
From source file:com.zghw.lucene.demo.DistanceFacetsExample.java
License:Apache License
/** Build the example index. */ public void index() throws IOException { IndexWriter writer = new IndexWriter(indexDir, new IndexWriterConfig(FacetExamples.EXAMPLES_VER, new WhitespaceAnalyzer())); // TODO: we could index in radians instead ... saves all the conversions in getBoundingBoxFilter // Add documents with latitude/longitude location: Document doc = new Document(); doc.add(new DoubleField("latitude", 40.759011, Field.Store.NO)); doc.add(new DoubleField("longitude", -73.9844722, Field.Store.NO)); writer.addDocument(doc);/*w ww.j a v a 2 s.c o m*/ doc = new Document(); doc.add(new DoubleField("latitude", 40.718266, Field.Store.NO)); doc.add(new DoubleField("longitude", -74.007819, Field.Store.NO)); writer.addDocument(doc); doc = new Document(); doc.add(new DoubleField("latitude", 40.7051157, Field.Store.NO)); doc.add(new DoubleField("longitude", -74.0088305, Field.Store.NO)); writer.addDocument(doc); // Open near-real-time searcher searcher = new IndexSearcher(DirectoryReader.open(writer, true)); writer.close(); }
From source file:com.zghw.lucene.demo.RangeFacetsExample.java
License:Apache License
/** Build the example index. */ public void index() throws IOException { IndexWriter indexWriter = new IndexWriter(indexDir, new IndexWriterConfig(FacetExamples.EXAMPLES_VER, new WhitespaceAnalyzer())); // Add documents with a fake timestamp, 1000 sec before // "now", 2000 sec before "now", ...: for (int i = 0; i < 100; i++) { Document doc = new Document(); long then = nowSec - i * 1000; // Add as doc values field, so we can compute range facets: doc.add(new NumericDocValuesField("timestamp", then)); // Add as numeric field so we can drill-down: doc.add(new LongField("timestamp", then, Field.Store.NO)); indexWriter.addDocument(doc);//from ww w .jav a 2 s .com } // Open near-real-time searcher searcher = new IndexSearcher(DirectoryReader.open(indexWriter, true)); indexWriter.close(); }
From source file:de.jetsli.lumeo.util.LuceneHelperTest.java
License:Apache License
@Test public void testTermMatching() throws Exception { RAMDirectory dir = new RAMDirectory(); IndexWriter w = new IndexWriter(dir, new IndexWriterConfig(RawLucene.VERSION, new KeywordAnalyzer())); Document d = new Document(); FieldType ft = Mapping.getLongFieldType(true, true); d.add(new LongField("id", 1234, ft)); d.add(new LongField("tmp", 1111, ft)); w.addDocument(d);/*from w w w . ja v a 2 s. c o m*/ d = new Document(); d.add(new LongField("id", 1234, ft)); d.add(new LongField("tmp", 2222, ft)); w.updateDocument(getTerm("id", 1234), d); d = new Document(); d.add(new LongField("id", 0, ft)); w.addDocument(d); w.commit(); IndexReader reader = DirectoryReader.open(w, true); IndexSearcher searcher = new IndexSearcher(reader); BytesRef bytes = new BytesRef(); NumericUtils.longToPrefixCoded(1234, 0, bytes); TopDocs td = searcher.search(new TermQuery(new Term("id", bytes)), 10); assertEquals(1, td.totalHits); assertEquals(1234L, searcher.doc(td.scoreDocs[0].doc).getField("id").numericValue()); assertEquals(2222L, searcher.doc(td.scoreDocs[0].doc).getField("tmp").numericValue()); w.close(); }
From source file:de.ks.flatadocdb.index.LuceneIndex.java
License:Apache License
protected IndexReader reopenIndexReader() throws IOException { indexReader = DirectoryReader.open(indexWriter, true); return indexReader; }
From source file:dk.dbc.opensearch.fedora.search.WriteAheadLogTest.java
License:Open Source License
@Test public void testInitializeRecoversUncomittedFiles() throws Exception { File comitting = new File(folder.getRoot(), "writeaheadlog.committing"); File writeaheadlog = new File(folder.getRoot(), "writeaheadlog.log"); RandomAccessFile comittingRaf = new RandomAccessFile(comitting, "rwd"); RandomAccessFile writeaheadlogRaf = new RandomAccessFile(writeaheadlog, "rwd"); String pid1 = "obj:1"; Document doc1 = makeLuceneDocument(pid1); String pid2 = "obj:2"; Document doc2a = makeLuceneDocument(pid2, new Pair<String, String>("field", "value1")); Document doc2b = makeLuceneDocument(pid2, new Pair<String, String>("field", "value2")); String pid3 = "obj:3"; Document doc3 = makeLuceneDocument(pid3); // Given a writer with one document writer.updateDocument(WriteAheadLog.getPidTerm(pid1), doc1); writer.commit();/*from w ww . ja v a2s. co m*/ // And a comitting file with that document deleted and a new document added WriteAheadLog.writeDocumentData(comittingRaf, pid1, null); WriteAheadLog.writeDocumentData(comittingRaf, pid2, doc2a); // And a log file with one new document and one updated document WriteAheadLog.writeDocumentData(writeaheadlogRaf, pid2, doc2b); WriteAheadLog.writeDocumentData(writeaheadlogRaf, pid3, doc3); comittingRaf.close(); writeaheadlogRaf.close(); // Initialize the WAL to recover the lost files WriteAheadLog wal = new WriteAheadLog(writer, folder.getRoot(), 1000, true); int recovered = wal.initialize(); assertEquals(4, recovered); // Verify that IndexReader reader = DirectoryReader.open(writer, false); IndexSearcher searcher = new IndexSearcher(reader); TopDocs result = searcher.search(new TermQuery(WriteAheadLog.getPidTerm(pid1)), 100); assertEquals(0, result.scoreDocs.length); System.out.println(""); result = searcher.search(new TermQuery(WriteAheadLog.getPidTerm(pid2)), 100); assertEquals(1, result.scoreDocs.length); Document doc2 = reader.document(result.scoreDocs[0].doc); Iterator<IndexableField> it1 = doc2b.iterator(); Iterator<IndexableField> it2 = doc2.iterator(); do { IndexableField expected = it1.next(); IndexableField actual = it2.next(); assertEquals(expected.fieldType().stored(), actual.fieldType().stored()); if (!(expected instanceof LongField)) { assertEquals(expected.fieldType().indexed(), actual.fieldType().indexed()); assertEquals(expected.fieldType().omitNorms(), actual.fieldType().omitNorms()); assertEquals(expected.fieldType().indexOptions(), actual.fieldType().indexOptions()); } assertEquals(expected.name(), actual.name()); assertEquals(expected.stringValue(), actual.stringValue()); assertEquals(expected.numericValue(), actual.numericValue()); } while (it1.hasNext() && it2.hasNext()); // assertEquals( doc2b.toString(), doc2.toString() ); result = searcher.search(new TermQuery(WriteAheadLog.getPidTerm(pid3)), 100); assertEquals(1, result.scoreDocs.length); }
From source file:dk.dma.msinm.lucene.AbstractLuceneIndex.java
License:Open Source License
/** * Refreshes the current reader from the given writer * * @param writer the index writer// w ww . ja v a 2s . com */ protected void refreshReader(IndexWriter writer) throws IOException { closeReader(); reader = DirectoryReader.open(writer, true); }