Search
Ponzu provides a read-only HTTP API to search the contents of your system's database. Full-text search is made possible by the use of Bleve, which handles the indexing and querying.
Endpoints¶
Search Content¶
GET /api/search?type=<Type>&q=<Query String>
Search must be enabled individually for each Content type
- Search is not on by default to protect your data in case it shouldn't be indexed and published via the API.
SearchMapping()
is implemented with default mapping (ideal for 99% of use cases).- To enable search, add a
IndexContent() bool
method to your content type and returntrue
(default implementation returns false).
-
<Type>
must implement db.Searchable -
Search is currently limited to single
<Type>
per request -
<Query String>
documentation here: Bleve Docs - Query String -
Search results are formatted exactly the same as standard Content API calls, so you don't need to change your client data model
-
Search handler will respect other interface implementations on your content, including:
item.Hideable
item.Omittable
item.Pushable
(Note: only the first search result will be pushed)
Sample Response¶
{ "data": [ { "uuid": "024a5797-e064-4ee0-abe3-415cb6d3ed18", "id": 6, "slug": "item-id-024a5797-e064-4ee0-abe3-415cb6d3ed18", // customizable "timestamp": 1493926453826, // milliseconds since Unix epoch "updated": 1493926453826, // your content data..., } ] }