What is the most efficient way to perform full-text searches on files in a filesystem?
If the number of queries greatly exceeds the number of changes to the files then the most efficient way to perform full-text search is to use a pre-built index that gets updated when files are added, changed or removed.
The type of index needed depends on the type of searches. For example, do you search on words or phrases? Do you want to take into account synonyms? Do you search on word-fragments?
What kinds of efficiencies are you looking for? Development time efficiency? Efficiencies in software licencing costs? CPU time efficiency? Disk IO efficiency? The way you weight these will have a large effect on which solution is optimal for you.
See also Wikipedia