search

The m_search model provides access to different kinds of search queries for searching through models.

Most searches in Zotonic are implemented in the mod_search module, searching through the rsc table in different kinds of ways.

Though, any module can implement a search by observing the search_query notification.

The search module is used inside templates. For example, the following snippet fetches the latest 10 modified pages in the "text" category:

{% for id in m.search[{latest cat="text" pagelen=10}] %}
    {{ m.rsc[id].title }}
{% endfor %}

Another example, searching for a text and requesting the second page with 20 results at a time:

{% for id, rank in m.search.paged[{fulltext text=query_string page=2 pagelen=20}] %}
    {{ m.rsc[id].title }}
{% endfor %}

Available Model API Paths

MethodPath patternDescription
get/paged/+searchname/...Run named search +searchname with request arguments and return paged search results.
get/count/+searchname/...Run named search +searchname and return only the total match count.
get/paged/+name_props_searchprops/...Run deprecated tuple-style search ({Name, Props}) and return paged results.
get/+name_props_searchprops/...Run deprecated tuple-style search ({Name, Props}) and return non-paged results.
get/pagedRun search from payload/query arguments and return paged results. No further lookups.
get/countRun search from payload/query arguments and return only the count. No further lookups.
get/+searchname/...Run named search +searchname with request arguments and return results.
get/Run search from payload/query arguments using the default search handling. No further lookups.

/+name marks a variable path segment. A trailing /... means extra path segments are accepted for further lookups.

See also

Search , pager tag , mod_search module , Custom search

Edit on GitHub

mailinglist Models predicate

Referred by

mod_search

mod_search implements various ways of searching through the main resource table using m_search.

with

Assign a complex value to a variable.

Search

Using the query search API you can retrieve lists of resources in various ways. In your templates, you do so through…