Используя Tika, код для получения текста из файла довольно прост:
import org.apache.tika.exception.TikaException;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.AutoDetectParser;
import org.apache.tika.sax.BodyContentHandler;
import org.apache.tika.parser.Parser;
// exception handling not shown
Parser parser = new AutoDetectParser();
StringWriter textBuffer = new StringWriter();
InputStream input = new FileInputStream(file);
Metadata md = new Metadata();
md.set(Metadata.RESOURCE_NAME_KEY, file.getName());
parser.parse(input, new BodyContentHandler(textBuffer), md);
String text = textBuffer.toString()
Пока что Тика 0.3 работает отлично. Просто добавьте в него любой файл, и он вернет вам то, что имеет смысл для этого формата. Я могу получить текст для индексации всего, что я уже добавил, включая PDF и новые файлы MS Office. Если есть проблемы с некоторыми форматами, я полагаю, что они в основном заключаются в извлечении форматированного текста, а не просто в виде открытого текста.