1. A computer-implemented method, comprising: defining via a definition statement a filter using a filter name which identifies a filter object representing an implementation of the filter; in response to a search query received at the object-relational-mapping (ORM) system from an application client, the search query identifying the filter via the filter name, invoking a full-text search engine to perform a full-text search in a database based on one or more keywords in the search query; identifying the filter object based on the filter name extracted from the search query; invoking the filter object associated with the search query using the filter name of the filter object to filter a search result generated from the full-text search engine; wherein defining a filter further comprises: indicating whether the filter should be cached within a cache memory of the ORM system, wherein if the filter is defined with caching enabled, the filter is cached within the ORM system for further usage without having to recreate the filter again; associating the filter name with a filter factory class which is used to implement the filter via the filter object associated with the filter name; determining whether the filter object identified by the filter name has been previously cached within the ORM; creating a new filter object using the filter factory class identified by the filter name if there is no filter object having the same filter name has been previously cached; and invoking the cached filter object if the filter object has been cached without recreating the new filter object.