Search is a fundamental feature of all DMS or CMS to quickly find relevant objects the user wants to work with. Some projects do not even use navigation to find content objects, because navigation hierarchy would be too deep or maybe too ambiguous, what would make using it too cumbersome or simply inefficient.
Metadata search usually defines an expression by constraining metadata field values with patterns. It’s quite challenging to provide a simple but intuitive user interface which helps to define this expression, supports predefined vocabularies… etc.
Fulltext search is more sophisticated to implement, since it has to index the text (every word) in a special way to make search really fast. Many databases have built in fulltext search features, but there are also standalone fulltext search engines which can index any data source.
Fulltext search on structured content is really powerful, since the search can be limited to any part of the structure, thus can be very specific. Like: find me all documents where word X occurs in the title.
It also has a linguistic aspect. It can deal with inflected forms, it can stem the text and also the query definition if the business logic requires that.
We can search for more than one words (expression search), then the occurrence of the words and their distance also matter in relevance evaluation.
Combined and predefined searches
Some CMS can combine metadata and fulltext search in a single query. Of course creating a complex query can be laborious, lot’s of details to fill out which is cumbersome and error-prone. The often used queries can be predefined and possible to trigger with a simple click or maybe by just filling out a few input parameters.