Ну, так же, как в любом другом языке / среде: Понимать формат файла, достаточный для извлечения строк.
И да, для многих форматов файлов это означает, что вы должны написать хотя бы половину парсера для этого формата. PDF особенно неприглядный, так как нет пробелов как таковых; это просто соглашение о том, как далеко друг от друга находятся глифы; Более того, PDF может содержать сжатые потоки, поэтому простой поиск печатаемых строк в файле не даст ничего полезного.
Естественно, вы можете искать библиотеку или другой инструмент, который уже делает это. Я видел хранилище документов, которое просто передавало файлы PDF через pdf2ascii и передавало полученный текст в Lucene.