REST API for Relevanssi

Plugin provides REST API endpoint for Relevanssi search plugin.

Author:Sergiy Dzysyak (profile at wordpress.org)
WordPress version required:4.6
WordPress version tested:6.2
Plugin version:1.18
Added to WordPress repository:12-09-2018
Last updated:14-05-2023
Rating, %:100
Rated by:3
Plugin URI:
Total downloads:5 406
Active installs:300+
plugin download
Click to start download

This plugin provides simple REST API for the popular search WordPress search engine – Relevanssi.

As far as this plugin provides API for the Relevanssi plugin, it should be installed.

Key features

  • Search through posts of a certain type. By default all types.
  • Results in pagination and optional.
  • Sets X-WP-Total header with a total number of records, the same way as the default search API does.
  • Sets X-WP-TotalPages header with a total number of pages, the same way as the default search API does.
  • Multilingual websites support. Both WPML and Polylang are supported, but not tested well, so let me know if you will find any problems.
  • Taxonomy filters are supported now. Some features may be missed, so feel free to report them.
  • Ordering option added. It is also possible to order by meta_key/meta_value/meta_value_num.

Brief usage examples

  • https://[your domain]/wp-json/relevanssi/v1/search?keyword=query
  • https://[your domain]/wp-json/relevanssi/v1/search?keyword=query&per_page=5
  • https://[your domain]/wp-json/relevanssi/v1/search?keyword=query&per_page=5&page=2

Define post type:

  • https://[your domain]/wp-json/relevanssi/v1/search?keyword=query&per_page=5&page=2&type=post

Filter by taxonomy/taxonomies:

  • https://[your domain]/wp-json/relevanssi/v1/search?keyword=test&tax_query[0][taxonomy]=category&tax_query[0][field]=id&tax_query[0][terms]=3
  • https://[your domain]/wp-json/relevanssi/v1/search?keyword=test&tax_query[relation]=AND&tax_query[0][taxonomy]=category&tax_query[0][field]=id&tax_query[0][terms]=3&tax_query[1][taxonomy]=category&tax_query[1][field]=id&tax_query[1][terms]=2

Exclude category via taxonomies:

  • https://[your domain]/wp-json/relevanssi/v1/search?keyword=test&tax_query[0][taxonomy]=category&tax_query[0][field]=id&tax_query[0][terms]=3&tax_query[0][operator]=NOT IN

For multilingual websites (WPML & Polylang):

  • https://[your domain]/wp-json/relevanssi/v1/search?keyword=query&lng=en

    • Results in order:
  • https://[your domain]/wp-json/relevanssi/v1/search?keyword=test&type=post&orderby=modified&order=DESC

  • https://[your domain]/wp-json/relevanssi/v1/search?keyword=test&type=post&orderby=modified&order=ASC
  • https://[your domain]/wp-json/relevanssi/v1/search?keyword=test&type=post&meta_key=some_key&orderby=meta_value|meta_value_num&order=ASC

Demo website

You can try the plugin on our demo website http://demo.erlycoder.com/demo1/. For example, you can try the following request:

Basic:
http://demo.erlycoder.com/demo1/wp-json/relevanssi/v1/search?keyword=test

Order posts by modification time:
http://demo.erlycoder.com/demo1/wp-json/relevanssi/v1/search?keyword=test&type=post&orderby=modified&order=DESC
http://demo.erlycoder.com/demo1/wp-json/relevanssi/v1/search?keyword=test&type=post&orderby=modified&order=ASC

Filter posts by taxonomy (one single category):
http://demo.erlycoder.com/demo1/wp-json/relevanssi/v1/search?keyword=test&tax_query[0][taxonomy]=category&tax_query[0][field]=id&tax_query[0][terms]=3

Filter posts by taxonomy (exclude category):
[http://demo.erlycoder.com/demo1/wp-json/relevanssi/v1/search?keyword=test&tax_query[0][taxonomy]=category&tax_query[0][field]=id&tax_query[0][terms]=3&tax_query[0][operator]=NOT IN](http://demo.erlycoder.com/demo1/wp-json/relevanssi/v1/search?keyword=test&tax_query[0][taxonomy]=category&tax_query[0][field]=id&tax_query[0][terms]=3&tax_query[0][operator]=NOT IN)


FAQ
ChangeLog