logger.error("Failed to create hanlder for object " + o.getClass().getName());
continue;
}
// Parse the object
ParsedObject parsedObject = handler.parseObject(o);
// Create document
Document doc = new Document();
// Populate document from the parsed object
if (parsedObject.getKey() != null)
{
doc.add(Field.Keyword(ParsedObject.FIELDNAME_KEY, parsedObject.getKey()));
}
if (parsedObject.getType() != null)
{
doc.add(Field.Text(ParsedObject.FIELDNAME_TYPE, parsedObject.getType()));
}
if (parsedObject.getTitle() != null)
{
doc.add(Field.Text(ParsedObject.FIELDNAME_TITLE, parsedObject.getTitle()));
}
if (parsedObject.getDescription() != null)
{
doc.add(Field.Text(ParsedObject.FIELDNAME_DESCRIPTION, parsedObject.getDescription()));
}
if (parsedObject.getContent() != null)
{
doc.add(Field.Text(ParsedObject.FIELDNAME_CONTENT, parsedObject.getContent()));
}
if (parsedObject.getLanguage() != null)
{
doc.add(Field.Text(ParsedObject.FIELDNAME_LANGUAGE, parsedObject.getLanguage()));
}
if (parsedObject.getURL() != null)
{
doc.add(Field.Text(ParsedObject.FIELDNAME_URL, parsedObject.getURL().toString()));
}
if(parsedObject.getClassName() != null)
{
doc.add(Field.Text(ParsedObject.FIELDNAME_CLASSNAME, parsedObject.getClassName()));
}
MultiMap multiKeywords = parsedObject.getMultiKeywords();
addFieldsToDocument(doc, multiKeywords, KEYWORD);
MultiMap multiFields = parsedObject.getMultiFields();
addFieldsToDocument(doc, multiFields, TEXT);
Map fields = parsedObject.getFields();
addFieldsToDocument(doc, fields, TEXT);
// Add the document to search index
try
{
indexWriter.addDocument(doc);
}
catch (IOException e)
{
logger.error("Error adding document to index.", e);
}
logger.debug("Index Document Count = " + indexWriter.docCount());
logger.info("Added '" + parsedObject.getTitle() + "' to index");
result = true;
}
try
{