I followed the example here for indexing all the pdfs in a directory. The process seems to work well, but at the end, when I go in the Solr-UI and click on "Execute query"(with q=*:*), I get only one entry.
Do I miss something in my code?
...
String[] files = documentDir.list();
if (files != null)
{
for (String document : files)
{
ContentHandler textHandler = new BodyContentHandler();
Metadata metadata = new Metadata();
ParseContext context = new ParseContext();
AutoDetectParser autoDetectParser = new AutoDetectParser();
InputStream inputStream = null;
try
{
inputStream = new FileInputStream(new File(documentDir, document));
autoDetectParser.parse(inputStream, textHandler, metadata, context);
SolrInputDocument doc = new SolrInputDocument();
doc.addField("id", document);
String content = textHandler.toString();
if (content != null)
{
doc.addField("fullText", content);
}
UpdateResponse resp = server.add(doc, 1);
server.commit(true, true, true);
if (resp.getStatus() != 0)
{
throw new IDSystemException(LOG, "Document could not be indexed. Status returned: " + resp.getStatus());
}
}
catch (FileNotFoundException fnfe)
{
throw new IDSystemException(LOG, fnfe.getMessage(), fnfe);
}
catch (IOException ioe)
{
throw new IDSystemException(LOG, ioe.getMessage(), ioe);
}
catch (SAXException se)
{
throw new IDSystemException(LOG, se.getMessage(), se);
}
catch (TikaException te)
{
throw new IDSystemException(LOG, te.getMessage(), te);
}
catch (SolrServerException sse)
{
throw new IDSystemException(LOG, sse.getMessage(), sse);
}
finally
{
if (inputStream != null)
{
try
{
inputStream.close();
}
catch (IOException ioe)
{
throw new IDSystemException(LOG, ioe.getMessage(), ioe);
}
}
}
...