The following code snippets demonstrate the new Document constructor.
Java Code
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import org.apache.commons.io.IOUtils;
import org.apache.log4j.Logger;
import com.exalead.papi.helper.Document;
import com.exalead.papi.helper.Part;
import com.exalead.papi.helper.PushAPI;
import com.exalead.papi.helper.PushAPIException;
public class FolderIndexer {
public FolderIndexer(final PushAPI papi, final Logger logger) {
this.papi = papi;
this.logger = logger;
}
void index(final File folder) {
for (final File file : folder.listFiles()) {
if (file.isFile()) {
try {
final InputStream stream = new BufferedInputStream
(new FileInputStream(file));
try {
final byte[] bytes = IOUtils.toByteArray(stream);
final Document doc = new Document(file.getAbsolutePath(),
String.valueOf(file.lastModified()));
doc.addPart(new Part(bytes));
papi.addDocument(doc);
} catch (final IOException e) {
logger.error("Could not read file " + file.getAbsolutePath(), e);
} catch (final PushAPIException e) {
logger.error("Could not send file to indexing server", e); }
} catch (final FileNotFoundException e) {
logger.error("File does not exist: " + file.getAbsolutePath(), e);
}
}
}
}
private final PushAPI papi;
private final Logger logger;
}
C# Code
public void IndexDocumentCollection()
{
foreach (string uri in Directory.GetFiles("."))
{
Console.WriteLine("Push document : " + uri);
Document doc = new Document(uri);
FileInfo fileInfo = new FileInfo(uri);
// the stamp associated to the document
doc.Stamp = fileInfo.LastWriteTime.ToString();
// create the metas
MetaContainer metaContainer = new MetaContainer();
metaContainer.AddMeta(new Meta("creation_date",
fileInfo.CreationTime.ToString()));
metaContainer.AddMeta(new Meta("size",
fileInfo.Length.ToString()));
doc.MetaContainer = metaContainer;
PartContainer partContainer = new PartContainer();
// master part
byte[] bytes = File.ReadAllBytes(uri);
Part masterPart = new Part(bytes);
masterPart.Extension = fileInfo.Extension;
partContainer.AddPart(masterPart);
doc.PartContainer = partContainer;
// push the document
papi.AddDocument(doc);
}
}