For a basic use case, the Lucene appstore module may suffice.
At Timeseries, We have encountered this problem as well, and we have built a custom solution for this. Building this all in Mendix is not a great idea, as there are solutions available which provide this capability (‘Google like searching’). Roughly, our solution lets a Mendix application expose the data it wants to be searched. A Java application retrieves this data periodically and ingests it into a search engine. We created a custom widget to query the search engine. If you are interested in this solution, you can send an email to firstname.lastname@example.org
This can be related to Lucene, but you can implement it using a general interface using the OQL functions or XPath functions from the runtime API. One issue is the representation of what it is that you are searching for.
You can implement a meta representation using your own reflection or the one from the App store. What is displayed on the the page then are these representations, possibly in a heavily styled template grid.
An additional thing to implement is a mechanism taking the user to the actual thing once selected. This can be implemented as a possible runtime configurable entity[s]->page or entitie[s]→ microflow configuration. A lot of work, but well worth it.
If all of this is finished, spend some time looking at Lucene for tagging and indexing everything