Java Code Examples for org.apache.lucene.index.IndexWriter#flush()
The following examples show how to use
org.apache.lucene.index.IndexWriter#flush() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: TestTopDocsCollector.java From lucene-solr with Apache License 2.0 | 6 votes |
public void testSharedCountCollectorManager() throws Exception { Query q = new MatchAllDocsQuery(); Directory dir = newDirectory(); IndexWriter w = new IndexWriter(dir, newIndexWriterConfig().setMergePolicy(NoMergePolicy.INSTANCE)); Document doc = new Document(); w.addDocuments(Arrays.asList(doc, doc, doc, doc)); w.flush(); w.addDocuments(Arrays.asList(doc, doc)); w.flush(); IndexReader reader = DirectoryReader.open(w); assertEquals(2, reader.leaves().size()); w.close(); TopDocsCollector<ScoreDoc> collector = doSearchWithThreshold( 5, 10, q, reader); TopDocs tdc = doConcurrentSearchWithThreshold(5, 10, q, reader); TopDocs tdc2 = collector.topDocs(); CheckHits.checkEqual(q, tdc.scoreDocs, tdc2.scoreDocs); reader.close(); dir.close(); }
Example 2
Source File: NLPIRTokenizerTest.java From nlpir-analysis-cn-ictclas with Apache License 2.0 | 5 votes |
public static void main(String[] args) throws Exception { // NLPIR NLPIRTokenizerAnalyzer nta = new NLPIRTokenizerAnalyzer("", 1, "", "", false); // Index IndexWriterConfig inconf = new IndexWriterConfig(nta); inconf.setOpenMode(OpenMode.CREATE_OR_APPEND); IndexWriter index = new IndexWriter(FSDirectory.open(Paths.get("index/")), inconf); Document doc = new Document(); doc.add(new TextField("contents", "特朗普表示,很高兴汉堡会晤后再次同习近平主席通话。我同习主席就重大问题保持沟通和协调、两国加强各层级和各领域交往十分重要。当前,美中关系发展态势良好,我相信可以发展得更好。我期待着对中国进行国事访问。", Field.Store.YES)); index.addDocument(doc); index.flush(); index.close(); // Search String field = "contents"; IndexReader reader = DirectoryReader.open(FSDirectory.open(Paths.get("index/"))); IndexSearcher searcher = new IndexSearcher(reader); QueryParser parser = new QueryParser(field, nta); Query query = parser.parse("特朗普习近平"); TopDocs top = searcher.search(query, 100); System.out.println("总条数:" + top.totalHits); ScoreDoc[] hits = top.scoreDocs; for (int i = 0; i < hits.length; i++) { System.out.println("doc=" + hits[i].doc + " score=" + hits[i].score); Document d = searcher.doc(hits[i].doc); System.out.println(d.get("contents")); } }
Example 3
Source File: TestLucene80DocValuesFormat.java From lucene-solr with Apache License 2.0 | 5 votes |
@Nightly public void testNumericFieldJumpTables() throws Exception { // IndexedDISI block skipping only activated if target >= current+2, so we need at least 5 blocks to // trigger consecutive block skips final int maxDoc = atLeast(5*65536); Directory dir = newDirectory(); IndexWriter iw = createFastIndexWriter(dir, maxDoc); Field idField = newStringField("id", "", Field.Store.NO); Field storedField = newStringField("stored", "", Field.Store.YES); Field dvField = new NumericDocValuesField("dv", 0); for (int i = 0 ; i < maxDoc ; i++) { Document doc = new Document(); idField.setStringValue(Integer.toBinaryString(i)); doc.add(idField); if (random().nextInt(100) > 10) { // Skip 10% to make DENSE blocks int value = random().nextInt(100000); storedField.setStringValue(Integer.toString(value)); doc.add(storedField); dvField.setLongValue(value); doc.add(dvField); } iw.addDocument(doc); } iw.flush(); iw.forceMerge(1, true); // Single segment to force large enough structures iw.commit(); iw.close(); assertDVIterate(dir); assertDVAdvance(dir, rarely() ? 1 : 7); // 1 is heavy (~20 s), so we do it rarely. 7 is a lot faster (8 s) dir.close(); }
Example 4
Source File: TestTopDocsCollector.java From lucene-solr with Apache License 2.0 | 4 votes |
public void testSetMinCompetitiveScore() throws Exception { Directory dir = newDirectory(); IndexWriter w = new IndexWriter(dir, newIndexWriterConfig().setMergePolicy(NoMergePolicy.INSTANCE)); Document doc = new Document(); w.addDocuments(Arrays.asList(doc, doc, doc, doc)); w.flush(); w.addDocuments(Arrays.asList(doc, doc)); w.flush(); IndexReader reader = DirectoryReader.open(w); assertEquals(2, reader.leaves().size()); w.close(); TopScoreDocCollector collector = TopScoreDocCollector.create(2, null, 2); ScoreAndDoc scorer = new ScoreAndDoc(); LeafCollector leafCollector = collector.getLeafCollector(reader.leaves().get(0)); leafCollector.setScorer(scorer); assertNull(scorer.minCompetitiveScore); scorer.doc = 0; scorer.score = 1; leafCollector.collect(0); assertNull(scorer.minCompetitiveScore); scorer.doc = 1; scorer.score = 2; leafCollector.collect(1); assertNull(scorer.minCompetitiveScore); scorer.doc = 2; scorer.score = 3; leafCollector.collect(2); assertEquals(Math.nextUp(2f), scorer.minCompetitiveScore, 0f); scorer.doc = 3; scorer.score = 0.5f; // Make sure we do not call setMinCompetitiveScore for non-competitive hits scorer.minCompetitiveScore = Float.NaN; leafCollector.collect(3); assertTrue(Float.isNaN(scorer.minCompetitiveScore)); scorer.doc = 4; scorer.score = 4; leafCollector.collect(4); assertEquals(Math.nextUp(3f), scorer.minCompetitiveScore, 0f); // Make sure the min score is set on scorers on new segments scorer = new ScoreAndDoc(); leafCollector = collector.getLeafCollector(reader.leaves().get(1)); leafCollector.setScorer(scorer); assertEquals(Math.nextUp(3f), scorer.minCompetitiveScore, 0f); scorer.doc = 0; scorer.score = 1; leafCollector.collect(0); assertEquals(Math.nextUp(3f), scorer.minCompetitiveScore, 0f); scorer.doc = 1; scorer.score = 4; leafCollector.collect(1); assertEquals(Math.nextUp(4f), scorer.minCompetitiveScore, 0f); reader.close(); dir.close(); }
Example 5
Source File: TestTopDocsCollector.java From lucene-solr with Apache License 2.0 | 4 votes |
public void testTotalHits() throws Exception { Directory dir = newDirectory(); IndexWriter w = new IndexWriter(dir, newIndexWriterConfig().setMergePolicy(NoMergePolicy.INSTANCE)); Document doc = new Document(); w.addDocuments(Arrays.asList(doc, doc, doc, doc)); w.flush(); w.addDocuments(Arrays.asList(doc, doc, doc, doc, doc, doc)); w.flush(); IndexReader reader = DirectoryReader.open(w); assertEquals(2, reader.leaves().size()); w.close(); for (int totalHitsThreshold = 0; totalHitsThreshold < 20; ++ totalHitsThreshold) { TopScoreDocCollector collector = TopScoreDocCollector.create(2, null, totalHitsThreshold); ScoreAndDoc scorer = new ScoreAndDoc(); LeafCollector leafCollector = collector.getLeafCollector(reader.leaves().get(0)); leafCollector.setScorer(scorer); scorer.doc = 0; scorer.score = 3; leafCollector.collect(0); scorer.doc = 1; scorer.score = 3; leafCollector.collect(1); leafCollector = collector.getLeafCollector(reader.leaves().get(1)); leafCollector.setScorer(scorer); scorer.doc = 1; scorer.score = 3; leafCollector.collect(1); scorer.doc = 5; scorer.score = 4; leafCollector.collect(1); TopDocs topDocs = collector.topDocs(); assertEquals(4, topDocs.totalHits.value); assertEquals(totalHitsThreshold < 4, scorer.minCompetitiveScore != null); assertEquals(new TotalHits(4, totalHitsThreshold < 4 ? TotalHits.Relation.GREATER_THAN_OR_EQUAL_TO : TotalHits.Relation.EQUAL_TO), topDocs.totalHits); } reader.close(); dir.close(); }
Example 6
Source File: TestTopFieldCollector.java From lucene-solr with Apache License 2.0 | 4 votes |
public void testSetMinCompetitiveScore() throws Exception { Directory dir = newDirectory(); IndexWriter w = new IndexWriter(dir, newIndexWriterConfig().setMergePolicy(NoMergePolicy.INSTANCE)); Document doc = new Document(); w.addDocuments(Arrays.asList(doc, doc, doc, doc)); w.flush(); w.addDocuments(Arrays.asList(doc, doc)); w.flush(); IndexReader reader = DirectoryReader.open(w); assertEquals(2, reader.leaves().size()); w.close(); Sort sort = new Sort(FIELD_SCORE, new SortField("foo", SortField.Type.LONG)); TopFieldCollector collector = TopFieldCollector.create(sort, 2, null, 2); ScoreAndDoc scorer = new ScoreAndDoc(); LeafCollector leafCollector = collector.getLeafCollector(reader.leaves().get(0)); leafCollector.setScorer(scorer); assertNull(scorer.minCompetitiveScore); scorer.doc = 0; scorer.score = 1; leafCollector.collect(0); assertNull(scorer.minCompetitiveScore); scorer.doc = 1; scorer.score = 2; leafCollector.collect(1); assertNull(scorer.minCompetitiveScore); scorer.doc = 2; scorer.score = 3; leafCollector.collect(2); assertEquals(2f, scorer.minCompetitiveScore, 0f); scorer.doc = 3; scorer.score = 0.5f; // Make sure we do not call setMinCompetitiveScore for non-competitive hits scorer.minCompetitiveScore = Float.NaN; leafCollector.collect(3); assertTrue(Float.isNaN(scorer.minCompetitiveScore)); scorer.doc = 4; scorer.score = 4; leafCollector.collect(4); assertEquals(3f, scorer.minCompetitiveScore, 0f); // Make sure the min score is set on scorers on new segments scorer = new ScoreAndDoc(); leafCollector = collector.getLeafCollector(reader.leaves().get(1)); leafCollector.setScorer(scorer); assertEquals(3f, scorer.minCompetitiveScore, 0f); scorer.doc = 0; scorer.score = 1; leafCollector.collect(0); assertEquals(3f, scorer.minCompetitiveScore, 0f); scorer.doc = 1; scorer.score = 4; leafCollector.collect(1); assertEquals(4f, scorer.minCompetitiveScore, 0f); reader.close(); dir.close(); }
Example 7
Source File: TestTopFieldCollector.java From lucene-solr with Apache License 2.0 | 4 votes |
public void testTotalHitsWithScore() throws Exception { Directory dir = newDirectory(); IndexWriter w = new IndexWriter(dir, newIndexWriterConfig().setMergePolicy(NoMergePolicy.INSTANCE)); Document doc = new Document(); w.addDocuments(Arrays.asList(doc, doc, doc, doc)); w.flush(); w.addDocuments(Arrays.asList(doc, doc, doc, doc, doc, doc)); w.flush(); IndexReader reader = DirectoryReader.open(w); assertEquals(2, reader.leaves().size()); w.close(); for (int totalHitsThreshold = 0; totalHitsThreshold < 20; ++ totalHitsThreshold) { Sort sort = new Sort(FIELD_SCORE, new SortField("foo", SortField.Type.LONG)); TopFieldCollector collector = TopFieldCollector.create(sort, 2, null, totalHitsThreshold); ScoreAndDoc scorer = new ScoreAndDoc(); LeafCollector leafCollector = collector.getLeafCollector(reader.leaves().get(0)); leafCollector.setScorer(scorer); scorer.doc = 0; scorer.score = 3; leafCollector.collect(0); scorer.doc = 1; scorer.score = 3; leafCollector.collect(1); leafCollector = collector.getLeafCollector(reader.leaves().get(1)); leafCollector.setScorer(scorer); scorer.doc = 1; scorer.score = 3; leafCollector.collect(1); scorer.doc = 5; scorer.score = 4; leafCollector.collect(1); TopDocs topDocs = collector.topDocs(); assertEquals(totalHitsThreshold < 4, scorer.minCompetitiveScore != null); assertEquals(new TotalHits(4, totalHitsThreshold < 4 ? TotalHits.Relation.GREATER_THAN_OR_EQUAL_TO : TotalHits.Relation.EQUAL_TO), topDocs.totalHits); } reader.close(); dir.close(); }