REST API for Relevanssi

0

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.

Version
Last updated
Active installations
WordPress Version
Tested up to
PHP Version
Rating
Total ratings
Tag

Description

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)