Die Suche nach Tags unterscheidet sich erheblich von der Suche nach Text. Eine markierte Suche sucht nach einer Verknüpfung, bei der alle Fragen mit einem bestimmten Tag verknüpft sind. Dies kann mit einer Volltext-Engine implementiert werden, bei der die Tags alle in einem einzigen großen Eintrag angehängt werden, aber eine relationale Datenbank wird wahrscheinlich in dieser Situation am besten sein (vorausgesetzt, die markierten Daten befinden sich in einer relationalen Datenbank).
Für die Suche nach anderen Dokumenten wie PDF, XLS, HTML, dann benötigen Sie Volltext wie Lucene. Sie benötigen einen Parser, der nur den relevanten Text aus jeder Quelle extrahieren kann (d. H. Separaten Text aus dem Markup).
Siehe "Was war Stack Overflow gebaut": http://stackoverflow.com/questions/749358/ –