Skip to content
This repository has been archived by the owner on Jun 4, 2022. It is now read-only.

BLUEPRINT OpenSearch implementation

Adrian Cochrane edited this page Jun 17, 2018 · 1 revision

Odysseus's support for OpenSearch would be necessary to support standards-based online autocompletion and combined-search.

And behind the scenes this would require use of Prosody's HTTP, JSON, XML, & (to avoid requiring configuration) SQL. But it would also require support for OpenSearch's template syntax.

Simultaneously this data can be easily cached. It'll only need to invalidated when you install a new search engine, uninstall one, daily for updates, and when another search engine is selected. These are rare events that could make caching worth it.

To make both of these work, I'd add a new template tag that runs a subtemplate in order to extract OpenSearch templates and parse them. That only run at compile-time (at which time variables would be inlined), for runtime to be limited to running the OpenSearch templates. That tag would also specify which OpenSearch template params is supported, in order to implement proper error handling.