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

📄 testtermvectorsreader.java

📁 Lucene a java open-source SearchEngine Framework
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
    assertTrue(reader != null);    TermPositionVector vector = (TermPositionVector) reader.get(0, testFields[0]);    assertTrue(vector != null);    String[] terms = vector.getTerms();    assertTrue(terms != null);    assertTrue(terms.length == testTerms.length);    for (int i = 0; i < terms.length; i++) {      String term = terms[i];      //System.out.println("Term: " + term);      assertTrue(term.equals(testTerms[i]));      int[] positions = vector.getTermPositions(i);      assertTrue(positions != null);      assertTrue(positions.length == this.positions[i].length);      for (int j = 0; j < positions.length; j++) {        int position = positions[j];        assertTrue(position == this.positions[i][j]);      }      TermVectorOffsetInfo[] offset = vector.getOffsets(i);      assertTrue(offset != null);      assertTrue(offset.length == this.offsets[i].length);      for (int j = 0; j < offset.length; j++) {        TermVectorOffsetInfo termVectorOffsetInfo = offset[j];        assertTrue(termVectorOffsetInfo.equals(offsets[i][j]));      }    }  }  public void testMapper() throws IOException {    TermVectorsReader reader = new TermVectorsReader(dir, seg, fieldInfos);    assertTrue(reader != null);    SortedTermVectorMapper mapper = new SortedTermVectorMapper(new TermVectorEntryFreqSortedComparator());    reader.get(0, mapper);    SortedSet set = mapper.getTermVectorEntrySet();    assertTrue("set is null and it shouldn't be", set != null);    //three fields, 4 terms, all terms are the same    assertTrue("set Size: " + set.size() + " is not: " + 4, set.size() == 4);    //Check offsets and positions    for (Iterator iterator = set.iterator(); iterator.hasNext();) {      TermVectorEntry tve = (TermVectorEntry) iterator.next();      assertTrue("tve is null and it shouldn't be", tve != null);      assertTrue("tve.getOffsets() is null and it shouldn't be", tve.getOffsets() != null);      assertTrue("tve.getPositions() is null and it shouldn't be", tve.getPositions() != null);    }    mapper = new SortedTermVectorMapper(new TermVectorEntryFreqSortedComparator());    reader.get(1, mapper);    set = mapper.getTermVectorEntrySet();    assertTrue("set is null and it shouldn't be", set != null);    //three fields, 4 terms, all terms are the same    assertTrue("set Size: " + set.size() + " is not: " + 4, set.size() == 4);    //Should have offsets and positions b/c we are munging all the fields together    for (Iterator iterator = set.iterator(); iterator.hasNext();) {      TermVectorEntry tve = (TermVectorEntry) iterator.next();      assertTrue("tve is null and it shouldn't be", tve != null);      assertTrue("tve.getOffsets() is null and it shouldn't be", tve.getOffsets() != null);      assertTrue("tve.getPositions() is null and it shouldn't be", tve.getPositions() != null);    }    FieldSortedTermVectorMapper fsMapper = new FieldSortedTermVectorMapper(new TermVectorEntryFreqSortedComparator());    reader.get(0, fsMapper);    Map map = fsMapper.getFieldToTerms();    assertTrue("map Size: " + map.size() + " is not: " + testFields.length, map.size() == testFields.length);    for (Iterator iterator = map.entrySet().iterator(); iterator.hasNext();) {      Map.Entry entry = (Map.Entry) iterator.next();      SortedSet sortedSet = (SortedSet) entry.getValue();      assertTrue("sortedSet Size: " + sortedSet.size() + " is not: " + 4, sortedSet.size() == 4);      for (Iterator inner = sortedSet.iterator(); inner.hasNext();) {        TermVectorEntry tve = (TermVectorEntry) inner.next();        assertTrue("tve is null and it shouldn't be", tve != null);        //Check offsets and positions.        assertTrue("tve is null and it shouldn't be", tve != null);        String field = tve.getField();        if (field.equals(testFields[0])) {          //should have offsets          assertTrue("tve.getOffsets() is null and it shouldn't be", tve.getOffsets() != null);          assertTrue("tve.getPositions() is null and it shouldn't be", tve.getPositions() != null);        }        else if (field.equals(testFields[1])) {          //should not have offsets          assertTrue("tve.getOffsets() is not null and it shouldn't be", tve.getOffsets() == null);          assertTrue("tve.getPositions() is not null and it shouldn't be", tve.getPositions() == null);        }      }    }    //Try mapper that ignores offs and positions    fsMapper = new FieldSortedTermVectorMapper(true, true, new TermVectorEntryFreqSortedComparator());    reader.get(0, fsMapper);    map = fsMapper.getFieldToTerms();    assertTrue("map Size: " + map.size() + " is not: " + testFields.length, map.size() == testFields.length);    for (Iterator iterator = map.entrySet().iterator(); iterator.hasNext();) {      Map.Entry entry = (Map.Entry) iterator.next();      SortedSet sortedSet = (SortedSet) entry.getValue();      assertTrue("sortedSet Size: " + sortedSet.size() + " is not: " + 4, sortedSet.size() == 4);      for (Iterator inner = sortedSet.iterator(); inner.hasNext();) {        TermVectorEntry tve = (TermVectorEntry) inner.next();        assertTrue("tve is null and it shouldn't be", tve != null);        //Check offsets and positions.        assertTrue("tve is null and it shouldn't be", tve != null);        String field = tve.getField();        if (field.equals(testFields[0])) {          //should have offsets          assertTrue("tve.getOffsets() is null and it shouldn't be", tve.getOffsets() == null);          assertTrue("tve.getPositions() is null and it shouldn't be", tve.getPositions() == null);        }        else if (field.equals(testFields[1])) {          //should not have offsets          assertTrue("tve.getOffsets() is not null and it shouldn't be", tve.getOffsets() == null);          assertTrue("tve.getPositions() is not null and it shouldn't be", tve.getPositions() == null);        }      }    }    // test setDocumentNumber()    IndexReader ir = IndexReader.open(dir);    DocNumAwareMapper docNumAwareMapper = new DocNumAwareMapper();    assertEquals(-1, docNumAwareMapper.getDocumentNumber());    ir.getTermFreqVector(0, docNumAwareMapper);    assertEquals(0, docNumAwareMapper.getDocumentNumber());    docNumAwareMapper.setDocumentNumber(-1);    ir.getTermFreqVector(1, docNumAwareMapper);    assertEquals(1, docNumAwareMapper.getDocumentNumber());    docNumAwareMapper.setDocumentNumber(-1);    ir.getTermFreqVector(0, "f1", docNumAwareMapper);    assertEquals(0, docNumAwareMapper.getDocumentNumber());    docNumAwareMapper.setDocumentNumber(-1);    ir.getTermFreqVector(1, "f2", docNumAwareMapper);    assertEquals(1, docNumAwareMapper.getDocumentNumber());    docNumAwareMapper.setDocumentNumber(-1);    ir.getTermFreqVector(0, "f1", docNumAwareMapper);    assertEquals(0, docNumAwareMapper.getDocumentNumber());    ir.close();  }  /**   * Make sure exceptions and bad params are handled appropriately   */  public void testBadParams() {    try {      TermVectorsReader reader = new TermVectorsReader(dir, seg, fieldInfos);      assertTrue(reader != null);      //Bad document number, good field number      reader.get(50, testFields[0]);      fail();    } catch (IOException e) {      // expected exception    }    try {      TermVectorsReader reader = new TermVectorsReader(dir, seg, fieldInfos);      assertTrue(reader != null);      //Bad document number, no field      reader.get(50);      fail();    } catch (IOException e) {      // expected exception    }    try {      TermVectorsReader reader = new TermVectorsReader(dir, seg, fieldInfos);      assertTrue(reader != null);      //good document number, bad field number      TermFreqVector vector = reader.get(0, "f50");      assertTrue(vector == null);    } catch (IOException e) {      fail();    }  }  public static class DocNumAwareMapper extends TermVectorMapper {    public DocNumAwareMapper() {    }    private int documentNumber = -1;    public void setExpectations(String field, int numTerms, boolean storeOffsets, boolean storePositions) {      if (documentNumber == -1) {        throw new RuntimeException("Documentnumber should be set at this point!");      }    }    public void map(String term, int frequency, TermVectorOffsetInfo[] offsets, int[] positions) {      if (documentNumber == -1) {        throw new RuntimeException("Documentnumber should be set at this point!");      }    }    public int getDocumentNumber() {      return documentNumber;    }    public void setDocumentNumber(int documentNumber) {      this.documentNumber = documentNumber;    }  }}

⌨️ 快捷键说明

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