Git Product home page Git Product logo

wp-redisearch's Introduction

RediSearch

IMPORTANT: The latest version of this plugin supports RediSearch version 2.0 (or higher) which runs on Redis 6.0 (or higher). If you have version prior to 2.0, please use this plugins 0.2.7.

Redisearch implements a search engine on top of Redis. It has lots of advanced features, like exact phrase matching and numeric filtering for text queries, that are nearly not possible or inefficient with mysql search queries.

Here you find a list of RediSearch features included in the plugin:

Search: Instantly find the content you’re looking for. The first time.

Scoring fields differently: Give different score to different fields. For example higher score to product name and number than its description.

Fuzzy Search: Don't worry about visitors misspelling.

Autosuggest: Adds a suggestion string to an auto-complete suggestion dictionary.

Synonyms: RediSearch supports synonyms, that is searching for synonyms words defined by the synonym data structure.

Existing features

  • WooCommerce: Index and search through most of existing products meta data.
  • Document: Index content of binary files such as pdf, word, excel and powerpoint.
  • Synonym: Adding synonym groups is simple. Just add each comma separated group on a new line in synonym settings and done.
  • Live search (aka autosuggest): Search as you type regardless of misspelling.

Installation

  1. First, you will need to properly install and configure Redis and RediSearch.
  2. Activate the plugin in WordPress.
  3. In the RediSearch settings page, input your Redis host and port and do the configuration.
  4. In RediSearch dashboard page, click on Index button.
  5. Let you visitors enjoy.

Optionaly, you can pass settings in your wp-config.php file like following. If you are using Redis Object Cache plugin, these settings may already exist.

define('WP_REDIS_HOST', '127.0.0.1');
define('WP_REDIS_PORT', '6379');
define('WP_REDIS_PASSWORD', 'your-password');
define('WP_REDIS_INDEX_NAME', 'indexName');
define('WP_REDIS_SCHEME', 'connectionScheme');

Frequently Asked Questions

What is wrong with WordPress native search?

Although mySql is a great database to storing relational data, It acts very poor on search queries and you must forget about some features like fuzzy matching and synonyms.

How Redisearch is compared to ElasticSearch?

Yes, ElasticSearch is a great search engine and it has very good performance compared to mySql. But RediSearch has almost 5 to 10 times better performance and also its way easier to create index, sync your data and send query requests.

Changelog

0.3.4
  • FIXED: Fixed server connection issue caused by last release
  • Added: Option to select default language
  • Added: Added a filter to force RediSearch to replave WP_Query
0.3.3
  • Added: Ability to connect via UNIX sockets
0.3.2
  • FIXED: Fix issue while creating/updating/deleting posts
0.3.1
  • FIXED: Fix an issue with live search
0.3.0
  • Updated: Implemented RediSearch version 2.0
0.2.7
  • FIXED: Fix some bugs.
0.2.6
  • FIXED: Fix a bug preventing saving og feature settings.
0.2.5
  • Added: Get index name option from wp-config
  • Added: Option for disabling stop words
  • Added: Adding a comma separated and user defined list of stop words
  • Fixed: Make search fields parent elements position to 'relative' so auto suggestion will appear in correct place
0.2.4
  • Fix: Fix admin js and css files enqueue directory name case issue
0.2.3
  • Added: Added password option.
  • Added: Ability to set redis server configurations in wp-config.php file.
0.2.2
  • Added: Document feature for indexing binary file contents
  • Added: Filter hook 'wp_redisearch_indexable_post_status' to manipulate indexable post status
  • Added: Filter hook 'wp_redisearch_before_admin_wp_query' Applies to main query args. This is mainly for showing number of indexable posts
  • Added: Filter hook 'wp_redisearch_after_admin_wp_query' Applies after main query and recieves args and the $query object. This is mainly for showing number of indexable posts
  • Added: Filter hook 'wp_redisearch_before_index_wp_query' Applies to main query args. This hook is for manipulating arguments for indexing process
  • Added: Filter hook 'wp_redisearch_after_index_wp_query' Applies after main query and recieves args and the $query object. This hook is for manipulating $query object used for indexing posts
0.2.1
  • Added: WooCommerce support added as Feature
  • Fixed: Return option values if empty string stores in database
  • Fixed: Fix incorrect link to settings page
  • Fixed: Fix harcoded index name in WP-CLI INFO command
  • Added: filter hook 'wp_redisearch_indexable_temrs' to manipulate indexable terms list
  • Added: filter hook 'wp_redisearch_indexable_post_types' to manipulate indexable post types
0.2.0
  • Added: WP-CLI support
  • Added: Register and activating of Features
  • Added: filter hook 'wp_redisearch_indexable_meta_keys' to add extra meta keys to the index
  • Added: filter hook 'wp_redisearch_indexable_meta_schema' to manupulate type of post meta fields (default is text)
  • Added: action hook 'wp_redisearch_after_post_indexed' fires after posts indexed from the main index command
  • Added: action hook 'wp_redisearch_after_post_published' fires after a post have been published
  • Added: action hook 'wp_redisearch_after_post_deleted' fires after a post have been deleted
  • Added: action hook 'wp_redisearch_after_index_created' fires after main index created
  • Added: action hook 'wp_redisearch_settings_indexing_fields' fires after settings fields inside indexing options page
  • Fixed: Fix indexing posts on publish/update
0.1.1
  • Use default value for settings if not set in settings
0.1.0
  • Initial plugin

wp-redisearch's People

Contributors

foadyousefi avatar dependabot[bot] avatar reedhewitt avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.