Beispiel #1
0
 /**
  * Same as {@link #makeDocument()}, only this method creates a document of the given size input by
  * <code>size</code>.
  */
 public Document makeDocument(int size) throws Exception {
   LeftOver lvr = leftovr.get();
   if (lvr == null
       || lvr.docdata == null
       || lvr.docdata.getBody() == null
       || lvr.docdata.getBody().length() == 0) {
     resetLeftovers();
   }
   DocData docData = getDocState().docData;
   DocData dd = (lvr == null ? source.getNextDocData(docData) : lvr.docdata);
   int cnt = (lvr == null ? 0 : lvr.cnt);
   while (dd.getBody() == null || dd.getBody().length() < size) {
     DocData dd2 = dd;
     dd = source.getNextDocData(new DocData());
     cnt = 0;
     dd.setBody(dd2.getBody() + dd.getBody());
   }
   Document doc = createDocument(dd, size, cnt);
   if (dd.getBody() == null || dd.getBody().length() == 0) {
     resetLeftovers();
   } else {
     if (lvr == null) {
       lvr = new LeftOver();
       leftovr.set(lvr);
     }
     lvr.docdata = dd;
     lvr.cnt = ++cnt;
   }
   return doc;
 }
Beispiel #2
0
 /**
  * Creates a {@link Document} object ready for indexing. This method uses the {@link
  * ContentSource} to get the next document from the source, and creates a {@link Document} object
  * from the returned fields. If <code>reuseFields</code> was set to true, it will reuse {@link
  * Document} and {@link Field} instances.
  */
 public Document makeDocument() throws Exception {
   resetLeftovers();
   DocData docData = source.getNextDocData(getDocState().docData);
   Document doc = createDocument(docData, 0, -1);
   return doc;
 }