⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testmultireader.java

📁 lucene2.2.0版本
💻 JAVA
字号:
package org.apache.lucene.index;/** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements.  See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License.  You may obtain a copy of the License at * *     http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */import junit.framework.TestCase;import org.apache.lucene.analysis.standard.StandardAnalyzer;import org.apache.lucene.document.Document;import org.apache.lucene.document.Field;import org.apache.lucene.store.Directory;import org.apache.lucene.store.RAMDirectory;import java.io.IOException;public class TestMultiReader extends TestCase {  private Directory dir = new RAMDirectory();  private Document doc1 = new Document();  private Document doc2 = new Document();  private SegmentReader reader1;  private SegmentReader reader2;  private SegmentReader [] readers = new SegmentReader[2];  private SegmentInfos sis = new SegmentInfos();    public TestMultiReader(String s) {    super(s);  }  protected void setUp() throws IOException {    DocHelper.setupDoc(doc1);    DocHelper.setupDoc(doc2);    DocHelper.writeDoc(dir, "seg-1", doc1);    DocHelper.writeDoc(dir, "seg-2", doc2);    sis.write(dir);    reader1 = SegmentReader.get(new SegmentInfo("seg-1", 1, dir));    reader2 = SegmentReader.get(new SegmentInfo("seg-2", 1, dir));    readers[0] = reader1;    readers[1] = reader2;  }    public void test() {    assertTrue(dir != null);    assertTrue(reader1 != null);    assertTrue(reader2 != null);    assertTrue(sis != null);  }      public void testDocument() throws IOException {    sis.read(dir);    MultiReader reader = new MultiReader(dir, sis, false, readers);    assertTrue(reader != null);    Document newDoc1 = reader.document(0);    assertTrue(newDoc1 != null);    assertTrue(DocHelper.numFields(newDoc1) == DocHelper.numFields(doc1) - DocHelper.unstored.size());    Document newDoc2 = reader.document(1);    assertTrue(newDoc2 != null);    assertTrue(DocHelper.numFields(newDoc2) == DocHelper.numFields(doc2) - DocHelper.unstored.size());    TermFreqVector vector = reader.getTermFreqVector(0, DocHelper.TEXT_FIELD_2_KEY);    assertTrue(vector != null);    TestSegmentReader.checkNorms(reader);  }  public void testUndeleteAll() throws IOException {    sis.read(dir);    MultiReader reader = new MultiReader(dir, sis, false, readers);    assertTrue(reader != null);    assertEquals( 2, reader.numDocs() );    reader.deleteDocument(0);    assertEquals( 1, reader.numDocs() );    reader.undeleteAll();    assertEquals( 2, reader.numDocs() );    // Ensure undeleteAll survives commit/close/reopen:    reader.commit();    reader.close();    sis.read(dir);    reader = new MultiReader(dir, sis, false, readers);    assertEquals( 2, reader.numDocs() );    reader.deleteDocument(0);    assertEquals( 1, reader.numDocs() );    reader.commit();    reader.close();    sis.read(dir);    reader = new MultiReader(dir, sis, false, readers);    assertEquals( 1, reader.numDocs() );  }            public void testTermVectors() {    MultiReader reader = new MultiReader(dir, sis, false, readers);    assertTrue(reader != null);  }    /* known to fail, see https://issues.apache.org/jira/browse/LUCENE-781  public void testIsCurrent() throws IOException {    RAMDirectory ramDir1=new RAMDirectory();    addDoc(ramDir1, "test foo", true);    RAMDirectory ramDir2=new RAMDirectory();    addDoc(ramDir2, "test blah", true);    IndexReader[] readers = new IndexReader[]{IndexReader.open(ramDir1), IndexReader.open(ramDir2)};    MultiReader mr = new MultiReader(readers);    assertTrue(mr.isCurrent());   // just opened, must be current    addDoc(ramDir1, "more text", false);    assertFalse(mr.isCurrent());   // has been modified, not current anymore    addDoc(ramDir2, "even more text", false);    assertFalse(mr.isCurrent());   // has been modified even more, not current anymore    try {      mr.getVersion();      fail();    } catch (UnsupportedOperationException e) {      // expected exception    }    mr.close();  }  private void addDoc(RAMDirectory ramDir1, String s, boolean create) throws IOException {    IndexWriter iw = new IndexWriter(ramDir1, new StandardAnalyzer(), create);    Document doc = new Document();    doc.add(new Field("body", s, Field.Store.YES, Field.Index.TOKENIZED));    iw.addDocument(doc);    iw.close();  }  */}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -