Поиск тегов сильно отличается от поиска текста. Поиск по тегу - это поиск ассоциации, в которой все вопросы связаны с определенным тегом. Это может быть реализовано с помощью полнотекстового механизма, в котором все теги добавляются в одну большую запись, но, вероятно, в этой ситуации лучше всего подойдет реляционная база данных (при условии, что тегированные данные для начала находятся в реляционной базе данных).
Для поиска других документов, таких как PDF, XLS, HTML, вам нужен полный текст, например, Lucene. Вам понадобится парсер, который может извлекать только соответствующий текст из каждого источника (т. Е. Отделять текст от разметки).