Relevanssi – A Better Search

Wordpress Plugin
Download latest - 4.18.2

Developers

deployer
msaari

Download Stats

Today 1,699
Yesterday 2,293
Last Week 10,923
All Time 1,962,735
Banner 772x250

Relevanssi replaces the standard WordPress search with a better search engine, with lots of features and configurable options. You'll get better results, better presentation of results - your users will thank you.

This is the free version of Relevanssi. There's also Relevanssi Premium, which has added features. For more information about Premium, see Relevanssi.com.

Do note that using Relevanssi may require large amounts (hundreds of megabytes) of database space (for a reasonable estimate, multiply the size of your wp_posts database table by three). If your hosting setup has a limited amount of space for database tables, using Relevanssi may cause problems. In those cases use of Relevanssi cannot be recommended.

Key features

  • Search results sorted in the order of relevance, not by date.
  • Fuzzy matching: match partial words, if complete words don't match.
  • Find documents matching either just one search term (OR query) or require all words to appear (AND query).
  • Search for phrases with quotes, for example "search phrase".
  • Create custom excerpts that show where the hit was made, with the search terms highlighted.
  • Highlight search terms in the documents when user clicks through search results.
  • Search comments, tags, categories and custom fields.
  • Multisite friendly.
  • bbPress support.
  • Gutenberg friendly.

Advanced features

  • Adjust the weighting for titles, tags and comments.
  • Log queries, show most popular queries and recent queries with no hits.
  • Restrict searches to categories and tags using a hidden variable or plugin settings.
  • Index custom post types and custom taxonomies.
  • Index the contents of shortcodes.
  • Google-style "Did you mean?" suggestions based on successful user searches.
  • Support for WPML multi-language plugin and Polylang.
  • Support for s2member membership plugin, Members, Groups, Simple Membership and other membership plugins.
  • Advanced filtering to help hacking the search results the way you want.
  • Search result throttling to improve performance on large databases.
  • Disable indexing of post content and post titles with a simple filter hook.

Premium features (only in Relevanssi Premium)

  • Indexing attachment content (PDF, Office, Open Office).
  • Improved spelling correction in "Did you mean?" suggestions.
  • Searching across multiple sites in the same multisite installation.
  • Search and index user profiles.
  • Search and index taxonomy term pages (categories, tags, custom taxonomies).
  • Search and index arbitrary columns in wp_posts MySQL table.
  • Assign weights to any post types and taxonomies.
  • Assign extra weight to new posts.
  • Let the user choose between AND and OR searches, use + and - operator (AND and NOT).
  • Export and import settings.
  • WP CLI commands.
  • Related posts.
  • Redirects for searches.

Releases (99 )

Version Release Date Change Log
4.18.2 2022-12-04
  • New feature: Relevanssi now has a debug mode that will help troubleshooting and support.
  • Minor fix: Using the_permalink() caused problems with search result links. That is now fixed. Relevanssi no longer hooks onto the_permalink hook and instead uses post_link and other similar hooks.
4.18.1 2022-11-29
  • New feature: New filter hook relevanssi_add_highlight_and_tracking can be used to force Relevanssi to add the highlight and tracking parameters to permalinks.
  • Changed behaviour: The 'relevanssi_wpml_filter' filter function now runs on priority 9 instead of 10 to avoid problems with custom filters on relevanssi_hits_filter.
  • Minor fix: Handle cases of missing posts better; relevanssi_get_post() now returns a WP_Error if no post is found.
  • Minor fix: Search queries that contain apostrophes and quotes can now be deleted from the log.
  • Minor fix: Avoid a slow query on the searching tab when the throttle is not enabled.
2.20.0 2022-11-09
4.17.1 2022-09-08
  • Minor fix: WooCommerce layered navigation compatibility caused enough problems that I've disabled it by default. You can enable it with add_filter( 'woocommerce_get_filtered_term_product_counts_query', 'relevanssi_filtered_term_product_counts_query' );.
  • Minor fix: Data attribute handling for in-document highlighting is now better.
4.17.0 2022-08-23
  • New feature: You can now look at how the posts appear in the database from the Debugging tab.
  • New feature: Relevanssi now works with WooCommerce layered navigation filters. The filter post counts should now match the Relevanssi search results.
  • New feature: New function relevanssi_count_term_occurrances() can be used to display how many times search terms appear in the database.
  • Changed behaviour: Relevanssi post update trigger is now on wp_after_insert_post instead of wp_insert_post. This makes the indexing more reliable and better compatible with other plugins.
  • Changed behaviour: Previously, throttling searches has been impossible when results are sorted by date. Now if you set Relevanssi to sort by post date from the searching settings, you can enable the throttle and the throttling will make sure to keep the most recent posts. This does not work if you set the orderby to post_date elsewhere.
  • Minor fix: Prevents Relevanssi from interfering in fringe cases (including The Event Calendar event search).
  • Minor fix: Relevanssi added the highlight parameter to home page URLs, even though it shouldn't.
  • Minor fix: Indexing nav_menu_item posts is stopped earlier in the process to avoid problems with big menus.
  • Minor fix: If the sentence query variable is used to enable phrase searching, Relevanssi now adds quotes to the highlight parameter.
  • Minor fix: Add support for JetSmartFilters.
  • Minor fix: Add support for WooCommerce products attribute lookup table filtering.
  • Minor fix: Improve excerpts to avoid breaking HTML tags when tags are allowed.
  • Minor fix: Fix broken tag and category weight settings.
  • Minor fix: Improve Polylang language detection.
  • Minor fix: Relevanssi now hyphenates long search terms in the User searches page. This prevents long search terms from messing up the display.
  • Minor fix: Improve WPFD file content indexing support. Relevanssi indexing now happens after the WPFD indexing is done.
  • Minor fix: Add support for TablePress table_filter shortcodes.
  • Minor fix: Stopped some problems with Did you mean suggestions suggesting the same word if a hyphen was included.
  • Minor fix: Paging didn't work in admin searches for hierarchical post types (like pages).
  • Minor fix: In-document highlighting could break certain elements thanks to Relevanssi messing up data attributes.
  • Minor fix: Relevanssi now recursively runs relevanssi_block_to_render and the CSS relevanssi_noindex filtering for inner blocks.
4.15.2 2022-04-21
  • New feature: New filter hook relevanssi_didyoumean_token lets you filter Did you mean words before correction. You can use this filter hook to exclude words from being corrected.
  • Minor fix: Phrase search couldn't find phrases that include an ampersand if they matched the post title. This works now.
  • Minor fix: Relevanssi now adds spaces after table cell tags to avoid table cell content sticking together in excerpts.
  • Minor fix: The 'Allowable tags in excerpts' function now automatically corrects the entered value to match what Relevanssi expects the value to be.
4.15.1 2022-03-18
  • Changed behaviour: Relevanssi now ignores WordPress metadata custom fields that aren't interesting for Relevanssi indexing.
  • Changed behaviour: Both relevanssi_get_permalink() and relevanssi_the_permalink() now can take post ID or a post object as a parameter and can thus be used outside the Loop.
  • Changed behaviour: The relevanssi_hits_filter hook now gets the WP_Query object as the second parameter.
  • Minor fix: Avoid error messages for missing mysqlcolumn_matches array key.
4.16.0 2022-03-08
  • New feature: Oxygen compatibility has been upgraded to support JSON data from Oxygen 4. This is still in early stages, so feedback from Oxygen users is welcome.
  • New feature: New filter hook relevanssi_oxygen_element is used to filter Oxygen JSON elements. The earlier relevanssi_oxygen_section_filters and relevanssi_oxygen_section_content filters are no longer used with Oxygen 4; this hook is the only way to filter Oxygen elements.
  • Changed behaviour: Relevanssi now applies remove_accents() to all strings. This is because default database collations do not care for accents and having accents may cause missing information in indexing. If you use a database collation that doesn't ignore accents, make sure you disable this filter.
  • Minor fix: Relevanssi used the_category filter with too few parameters. The missing parameters have been added.
  • Minor fix: Stops drafts and pending posts from showing up in Relevanssi Live Ajax Searches.
  • Minor fix: Phrases weren't used in some cases where a multiple-word phrase looked like a single-word phrase.
  • Minor fix: Prevents fatal errors from relevanssi_strip_all_tags().
4.14.7 2022-01-28
  • User interface: The synonym settings page now alerts if the synonyms aren't active because of the AND search.
4.14.6 2021-12-25
  • Security fix: Extra hardening for AJAX requests. Some AJAX actions in Relevanssi could leak information to site subscribers who knew what to look for.
4.14.5 2021-12-24
  • Security fix: Any registered user could empty the Relevanssi index by triggering the index truncate AJAX action. That is no longer possible.
  • New feature: The [searchform] shortcode has a new parameter, 'checklist', which you can use to create taxonomy checklists.
  • Changed behaviour: The relevanssi_search_again parameter array has more parameters the filter can modify.
  • Changed behaviour: The relevanssi_show_matches filter hook gets the post object as the second parameter.
  • Minor fix: The cats and tags parameters work better and support array values.
4.14.4 2021-11-02
  • Minor fix: relevanssi_orderby did not always accept an array-format orderby parameter.
  • Minor fix: Removes a highlighting problem stemming from uppercase search terms.
  • Minor fix: Relevanssi removes highlights better from inside multiline HTML tags.
  • Minor fix: When image attachment indexing was disabled, saving image attachments would still index the images. Image attachment blocking is now a relevanssi_indexing_restriction filter function, which means it's always active.
4.14.3 2021-10-19
  • Security fix: User searches page had a XSS vulnerability.
4.14.2 2021-10-12
  • Fix: Remove unnecessary database calls from admin pages.
  • Fix: Improved Oxygen compatibility.
4.14.0 2021-10-11
  • New feature: New filter hook relevanssi_render_blocks controls whether Relevanssi renders blocks in a post or not. If you are having problems updating long posts with lots of blocks, having this filter hook return false for the post in question will likely help, as rendering the blocks in a long post can take huge amounts of memory.
  • New feature: The user searches page has been improved a lot.
  • New feature: The [searchform] shortcode has a new parameter, 'post_type_boxes', which creates a checkbox for each post type you list in the value. For example [searchform post_type_boxes='*post,page'] would create a search with a checkbox for 'post' and 'page' post types, with 'post' pre-checked.
  • New feature: You can now have multiple dropdowns in one [searchform] shortcode. Anything that begins with 'dropdown' is considered a dropdown parameter, so you can do [searchform dropdown_1='category' dropdown_2='post_tag'] for example.
  • New feature: New filter hook relevanssi_search_params lets you filter search parameters after they've been collected from the WP_Query.
  • New feature: New filter hook relevanssi_excerpt_post lets you make Relevanssi skip creating excerpts for specific posts.
  • Changed behaviour: Filter hooks relevanssi_1day, relevanssi_7days and relevanssi_30days are removed, as the user searches page is now different. The default value for relevanssi_user_searches_limit is now 100 instead of 20.
  • Minor fix: In some languages, iOS uses for quotes. Relevanssi now understands those for the phrase operator.
  • Minor fix: Stops Relevanssi from blocking the admin search for WooCommerce coupons and other WooCommerce custom post types.
  • Minor fix: Fixes problems with the WP-Members compatibility.
  • Minor fix: New parameter for relevanssi_tokenize() introduces the context (indexing or search query). The relevanssi_extract_phrases() is only used on search queries.
  • Minor fix: Relevanssi won't let you adjust synonyms and stopwords anymore if you use Polylang and are in 'Show all languages' mode.
  • Minor fix: Highlighting is improved by a more precise HTML entity filter, thanks to Jacob Bearce.
4.14.1 2021-10-11
  • Adds a missing file.
4.13.3.1 2021-08-12
  • Minor fix: The Bricks compatibility was broken. This version fixes it.
4.13.3 2021-08-11
  • New feature: You can now add a post type dropdown to search forms with the [searchform] shortcode with the parameter 'dropdown' set to 'post_type'.
  • New feature: Adds compatibility for Product GTIN (EAN, UPC, ISBN) for WooCommerce plugin.
  • New feature: New filter hook relevanssi_post_to_excerpt lets you filter the post object before an excerpt is created from it.
  • New feature: Relevanssi is now compatible with the Bricks page builder theme (requires Bricks 1.3.2).
  • Minor fix: The character is now counted as a quote.
  • Minor fix: Running indexing through WP CLI doesn't cause PHP notices anymore.
  • Minor fix: Sometimes the Did you mean would return really weird long suggestions from the search logs. That won't happen anymore.
  • Minor fix: Improves tax_query handling in fringe cases with multiple AND clauses joined together with OR.
  • Minor fix: Oxygen compatibility has been improved. Rich text fields and updating posts when they are saved in Oxygen now work better, and revisions are no longer indexed.
  • Minor fix: Searching without a search term works much better now, you get more posts in the results (default value is up to 500).
4.13.2 2021-06-04
  • New feature: Adds support for Avada Live Search.
  • New feature: Adds support for Fibo Search.
  • Minor fix: Elementor library searches are not broken anymore when Relevanssi is enabled in admin.
  • Minor fix: Relevanssi now understands array-style post_type[] parameters.
  • Minor fix: Relevanssi now automatically considers the Turkish '' the same as 'i'.
4.13.1 2021-05-12
  • New feature: Adds compatibility for WP-Members plugin, preventing blocked posts from showing up in the search results.
  • New feature: New function relevanssi_get_attachment_suffix() can be used to return the attachment file suffix based on a post object or a post ID.
  • Minor fix: Improves the Oxygen compatibility. Now also the [oxygen] shortcode tags are removed.
4.13.0 2021-04-28
  • New feature: New filter hook relevanssi_phrase filters each phrase before it's used in the MySQL query.
  • New feature: Relevanssi can now add Google-style missing term lists to the search results. You can either use the %missing% tag in the search results breakdown settings, or you can create your own code: the missing terms are also in $post->missing_terms. Relevanssi Premium will also add "Must have" links when there's just one missing term.
  • New feature: New filter hook relevanssi_missing_terms_tag controls which tag is used to wrap the missing terms.
  • New feature: New filter hook relevanssi_missing_terms_template can be used to filter the template used to display the missing terms.
  • New feature: New function relevanssi_get_post_meta_for_all_posts() can be used to fetch particular meta field for a number of posts with just one query.
  • New feature: New filter hook relevanssi_post_author lets you filter the post author display_name before it is indexed.
  • Changed behaviour: relevanssi_strip_tags() used to add spaces between HTML tags before stripping them. It no longer does that, but instead adds a space after specific list of tags (p, br, h1-h6, div, blockquote, hr, li, img) to avoid words being stuck to each other in excerpts.
  • Changed behaviour: Relevanssi now indexes the contents of Oxygen Builder PHP & HTML code blocks.
  • Changed behaviour: Relevanssi now handles synonyms inside phrases differently. If the new filter hook relevanssi_phrase_synonyms returns true (default value), synonyms create a new phrase (with synonym 'dog=hound', phrase "dog biscuits" becomes "dog biscuits" "hound biscuits"). If the value is false, synonyms inside phrases are ignored.
  • Minor fix: Warnings when creating excerpts with search terms that contain a slash were removed.
  • Minor fix: Better Ninja Tables compatibility to avoid problems with lightbox images.
  • Minor fix: Relevanssi did not work well in the Media Library grid view. Relevanssi is now blocked there. If you need Relevanssi in Media Library searches, use the list view.
  • Minor fix: Relevanssi excerpt creation didn't work correctly when numerical search terms were used.
4.12.5 2021-03-16
  • Changed behaviour: relevanssi_excerpt_custom_field_content now gets the post ID and list of custom field names as a parameter.
  • Minor fix: Makes sure Relevanssi options are not wiped when the free version is deleted while Premium is active.
  • Minor fix: Adds a trailing slash to the blog URL in Did you mean links.
4.12.4 2021-03-10
  • New feature: New action hooks relevanssi_pre_the_content and relevanssi_post_the_content fire before and after Relevanssi applies the_content filter to the post excerpts. Some Relevanssi default behaviour has been moved to these hooks so it can be modified.
  • Changed behaviour: The relevanssi_do_not_index gets the post object as a third parameter.
  • Minor fix: Remove errors from relevanssi_strip_all_tags() getting a null parameter.
4.12.3 2021-03-06
  • Major fix: Post type weights did not work; improving the caching had broken them.
  • Minor fix: Relevanssi works better with soft hyphens now, removing them in indexing and excerpt-building.
  • Minor fix: Stops indexing error messages in WPML.
4.12.2 2021-02-27
  • Major fix: Stops more problems with ACF custom field indexing.
  • Major fix: Fixes a bug in search result caching that caused Relevanssi to make lots of unnecessary database queries.
4.12.1 2021-02-26
  • Major fix: Stops TypeError crashes from null custom field indexing.
4.12.0 2021-02-25
  • New feature: New filter hook relevanssi_phrase_queries can be used to add phrase matching queries to support more content types.
  • New feature: New filter hook relevanssi_excerpt_gap lets you adjust the first line of excerpt optimization.
  • Changed behaviour: The relevanssi_admin_search_element filter hook now gets the post object as the second parameter, rendering the filter hook more useful.
  • Changed behaviour: Relevanssi now automatically optimizes excerpt creation in long posts. You can still use relevanssi_optimize_excerpts for further optimization, but it's probably not necessary.
  • Changed behaviour: The relevanssi_tag_before_tokenize filter hook parameters were changed in order to be actually useful and to match what the filter hook is supposed to do.
  • Minor fix: In some cases Relevanssi wouldn't highlight the last word of the title. This is more reliable now.
  • Minor fix: Relevanssi will now add the highlight parameter only to search results, and not to other links on the search results page.
  • Minor fix: Improved fringe cases in nested taxonomy queries.
  • Minor fix: Taxonomy terms in WPML were not indexed correctly. Instead of the post language, the current language was used, so if your admin dashboard is in English, German posts would get English translations of the terms, not German. This is now fixed.
  • Minor fix: Excerpt creation is now faster when multiple excerpts are not used.
  • Minor fix: The SEO plugin noindex setting did not actually work. That has been fixed now.
4.11.0 2021-02-01
  • New feature: New filter hook relevanssi_rendered_block filters Gutenberg block content after the block has been rendered with render_block().
  • New feature: New filter hook relevanssi_log_query can be used to filter the search query before it's logged. This can be used to log instead the query that includes synonyms (available as a parameter to the filter hook).
  • New feature: New filter hook relevanssi_add_all_results can be used to make Relevanssi add a list of all result IDs found to $query->relevanssi_all_results. Just make this hook return true.
  • New feature: New filter hook relevanssi_acceptable_hooks can be used to adjust where in WP admin the Relevanssi admin javascripts are enqueued.
  • New feature: Support for All-in-One SEO. Posts marked as 'Robots No Index' are not indexed by Relevanssi.
  • New feature: New setting in advanced indexing settings to control whether Relevanssi respects the SEO plugin 'noindex' setting or not.
  • Changed behaviour: Type hinting has been added to Relevanssi functions, which may cause errors if the filter functions are sloppy with data types.
  • Changed behaviour: relevanssi_the_title() now supports the same parameters as the_title(), so you can just replace the_title() with it and keep everything else the same. The old behaviour is still supported.
  • Changed behaviour: Relevanssi no longer logs queries with the added synonyms. You can use the relevanssi_log_query filter hook to return to the previous behaviour of logging the synonyms too. Thanks to Jan Willem Oostendorp.
  • Changed behaviour: When using ACF and custom fields indexing set to 'all', Relevanssi will no longer index the meta fields (where the content begins with field_).
  • Minor fix: The Oxygen compatibility made it impossible to index other custom fields than the Oxygen ct_builder_shortcodes. This has been improved now.
  • Minor fix: Old legacy scripts that caused Javascript warnings on admin pages have been removed.
  • Minor fix: In some cases, having less than or greater than symbols in PDF content would block that PDF content from being indexed.
4.10.2 2020-12-18
  • New feature: You can force Relevanssi to be active by setting the query variable relevanssi to true. Thanks to Jan Willem Oostendorp.
  • Changed behaviour: Relevanssi has been moved from the_posts filter to posts_pre_query. This change doesn't do much, but increases performance slightly as WordPress needs to do less useless work, as now the default query is no longer run. Thanks to Jan Willem Oostendorp.
  • Minor fix: Highlighting didn't work properly when highlighting something immediately following a HTML tag.
  • Minor fix: You can no longer set the value of minimum word length to less than 1 or higher than 9 from the settings page.
  • Minor fix: Importing options broke synonym and stopword settings.
  • Minor fix: Improves the Rank Math SEO compatibility to avoid errors in plugin activation.
  • Minor fix: WPML search results that included non-post results caused fatal errors and crashes. This fixes the crashing and makes non-post results work better in both WPML and Polylang.
4.10.1 2020-12-10
  • Major fix: The multilingual stopwords and synonyms were used based on the global language. Now when indexing posts, the post language is used instead of the global language.
4.10.0 2020-12-09
  • New feature: Relevanssi now supports multilingual synonyms and stopwords. Relevanssi now has a different set of synonyms and stopwords for each language. This feature is compatible with WPML and Polylang.
  • New feature: SEO by Rank Math compatibility is added: posts marked as 'noindex' with Rank Math are not indexed by Relevanssi.
  • Minor fix: With keyword matching set to 'whole words' and the 'expand highlights' disabled, words that ended with an 's' weren't highlighted correctly.
  • Minor fix: The 'Post exclusion' setting didn't work correctly. It has been fixed.
  • Minor fix: It's now impossible to set negative weights in searching settings. They did not work as expected anyway.
  • Minor fix: Relevanssi had an unnecessary index on the doc column in the wp_relevanssi database table. It is now removed to save space. Thanks to Matthew Wang.
  • Minor fix: Improved Oxygen Builder support makes sure ct_builder_shortcodes custom field is always indexed.
4.9.1 2020-12-03
  • Changed behaviour: The relevanssi_excerpt_part filter hook now gets the post ID as a second parameter. The documentation for the filter has been fixed to match actual use: this filter is applied to the excerpt part after the highlighting and the ellipsis have been added.
  • Changed behaviour: The relevanssi_index_custom_fields filter hook is no longer used when determining which custom fields are used for phrase searching. If you have a use case where this change matters, please contact us.
  • Minor fix: The relevanssi_excerpt filter hook was removed in 4.9.0. It is now restored and behaves the way it did before.
  • Minor fix: Avoids undefined variable warnings from the Pretty Links compatibility code.
  • Minor fix: The Oxygen Builder compatibility has been improved. Now shortcodes in Oxygen Builder content are expanded, if that setting is enabled in Relevanssi settings.
4.9.0 2020-11-13
  • New feature: There's now a "Debugging" tab in the Relevanssi settings, letting you see how the Relevanssi index sees posts. This is familiar to Premium users, but is now available in the free version as well.
  • New feature: The SEO Framework plugin is now supported and posts set excluded from the search in SEO Framework settings will be excluded from the index.
  • New feature: There's a new option, "Expand highlights". Enabling it makes Relevanssi expand partial-word highlights to cover the full word. This is useful when doing partial matching and when using a stemmer.
  • New feature: New filter hook relevanssi_excerpt_part allows you to modify the excerpt parts before they are combined together. This doesn't do much in the free version.
  • New feature: Improved compatibility with Oxygen Builder. Relevanssi automatically indexes the Oxygen Builder content and cleans it up. New filter hooks relevanssi_oxygen_section_filters and relevanssi_oxygen_section_content allow easier filtering of Oxygen content to eg. remove unwanted sections.
  • Changed behaviour: The "Uncheck this for non-ASCII highlights" option has been removed. Highlights are now done in a slightly different way that should work in all cases, including for example Cyrillic text, thus this option is no longer necessary.
  • Minor fix: Fixes phrase searching using non-US alphabet.
  • Minor fix: Relevanssi would break admin searching for hierarchical post types. This is now fixed, Relevanssi won't do that anymore.
  • Minor fix: Relevanssi indexing now survives better shortcodes that change the global $post.
  • Minor fix: Warnings about missing relevanssi_update_counts function are now removed.
  • Minor fix: Paid Membership Pro support now takes notice of the "filter queries" setting.
  • Minor fix: OR logic didn't work correctly when two phrases both had the same word (for example "freedom of speech" and "free speech"). The search would always be an AND search in those cases. That has been fixed.
  • Minor fix: Relevanssi no longer blocks the Pretty Links admin page search.
  • Minor fix: The "Respect 'exclude_from_search'" setting did not work if no post type parameter was included in the search parameters.
  • Minor fix: The category inclusion and exclusion setting checkboxes on the Searching tab didn't work. The setting was saved, but the checkboxes wouldn't appear.
4.8.3 2020-10-05
  • New feature: Both relevanssi_fuzzy_query and relevanssi_term_where now get the current search term as a parameter.
  • Minor fix: Relevanssi database tables don't have PRIMARY keys, only UNIQUE keys. In case this is a problem (for example on Digital Ocean servers), deactivate and activate Relevanssi to fix the problem.
  • Minor fix: When posts_per_page was set to -1, the max_num_pages was incorrectly set to the number of posts found. It should, of course, be 1.
  • Minor fix: Excluding from logs didn't work if user IDs had spaces between them ('user_a, user_b'). This is now fixed for good, the earlier fix didn't work.
4.8.2 2020-09-09
  • New feature: New filter hook relevanssi_term_where lets you filter the term WHERE conditional for the search query.
  • Minor fix: Doing the document count updates asynchronously caused problems in some cases (eg. importing posts). Now the document count is only updated after a full indexing and once per week.
  • Minor fix: Phrase matching has been improved to make it possible to search for phrases that include characters like the ampersand.
4.8.1 2020-08-26
  • Major fix: Changes in WooCommerce 4.4.0 broke the Relevanssi searches. This makes the WooCommerce search work again.
  • Minor fix: Excluding from logs didn't work if user IDs had spaces between them ('user_a, user_b'). Now the extra spaces don't matter.
  • Minor fix: The asynchronous doc count action in the previous version could cause an infinite loop with the Snitch logger plugin. This is prevented now: the async action doesn't run after indexing unless a post is actually indexed.
  • Minor fix: Relevanssi indexing procedure was triggered for autosaved drafts, causing possible problems with the asynchronous doc count action.
  • Minor fix: The relevanssi_index_custom_fields filter hook was not applied when doing phrase matching, thus phrases could not be found when they were in custom fields added with the filter.
4.8.0 2020-08-13
  • Changed behaviour: Relevanssi now requires PHP 7.
  • Changed behaviour: Relevanssi now sorts strings with strnatcasecmp() instead of strcasecmp(), leading to a more natural results with strings that include numbers.
  • Changed behaviour: Relevanssi init is now moved from priority 10 to priority 1 on the init hook to avoid problems with missing TablePress compatibility.
  • New feature: New filter hook relevanssi_get_approved_comments_args filters the arguments to get_approved_comments in comment indexing. This can be used to index custom comment types, for example.
  • New feature: Content wrapped in the noindex tags is no longer used for excerpts.
  • New feature: The [et_pb_fullwidth_code] shortcode is now removed completely, including the contents, when Relevanssi is indexing and building excerpts.
  • Major fix: Relevanssi didn't index new comments when they were added; when a post was indexed or the whole index rebuilt, comment content was included. We don't know how long this bug has existed, but it is now fixed. Rebuild the index to get all comment content included in the index.
  • Minor fix: Autoload has been disabled for several options that are not needed often.
  • Minor fix: Phrase matching did not work correctly in visible custom fields.
  • Minor fix: TablePress support could cause halting errors if posts were inserted before Relevanssi has loaded itself (on init priority 10). These errors will no longer happen.
  • Minor fix: The doc count update, which is a heavy task, is now moved to an asynchronous action to avoid slowing down the site for users.
  • Minor fix: Relevanssi only updates doc count on relevanssi_insert_edit() when the post is indexed.
4.7.2.1 2020-06-04
  • For some reason the plugin files didn't update in the previous update, ie. 4.7.2 is equal to 4.7.1. This is the real 4.7.2 update.
  • Minor fix: Media Library searches failed if Relevanssi was enabled in the WP admin, but the attachment post type wasn't indexed. Relevanssi will no longer block the default Media Library search in these cases.
  • Minor fix: Adds more backwards compatibility for the relevanssi_indexing_restriction change, there's now an alert on indexing tab if there's a problem.
4.7.2 2020-04-02
  • Minor fix: Media Library searches failed if Relevanssi was enabled in the WP admin, but the attachment post type wasn't indexed. Relevanssi will no longer block the default Media Library search in these cases.
  • Minor fix: Adds more backwards compatibility for the relevanssi_indexing_restriction change, there's now an alert on indexing tab if there's a problem.
4.7.1 2020-03-26
  • New feature: New filter hook relevanssi_post_content_after_shortcodes filters the post content after shortcodes have been processed but before the HTML tags are stripped.
  • Minor fix: Adds more backwards compatibility for the relevanssi_indexing_restriction change.
4.7.0 2020-03-23
  • New feature: New filter hook relevanssi_admin_search_blocked_post_types makes it easy to block Relevanssi from searching a specific post type in the admin dashboard. There's built-in support for Reusable Content Blocks rc_blocks post type, for example.
  • New feature: The reason why a post is not indexed is now stored in the _relevanssi_noindex_reason custom field.
  • Changed behaviour: The relevanssi_indexing_restriction filter hook has a changed format. Instead of a string value, the filter now expects an array with the MySQL query in the index 'mysql' and a reason in string format in 'reason'. There's some temporary backwards compatibility for this.
  • Changed behaviour: Relevanssi now applies minimum word length when tokenizing search query terms.
  • Changed behaviour: Content stopwords are removed from the search queries when doing excerpts and highlights. When Relevanssi uses the untokenized search terms for excerpt-building, stopwords are removed from those words. This should lead to better excerpts.
  • Minor fix: Improves handling of emoji in indexing. If the database supports emoji, they are allowed, otherwise they are encoded.
4.6.0 2020-02-17
  • Changed behaviour: Phrases in OR search are now less restrictive. A search for 'foo "bar baz"' used to only return posts with the "bar baz" phrase, but now also posts with just the word 'foo' will be returned.
  • Minor fix: User Access Manager showed drafts in search results for all users. This is now fixed.
4.5.0 2020-01-29
  • New feature: New filter hook relevanssi_disable_stopwords can be used to disable stopwords completely. Just add a filter function that returns true.
  • Changed behaviour: Stopwords are no longer automatically restored if emptied. It's now possible to empty the stopword list. If you want to restore the stopwords from the file (or from the database, if you're upgrading from an earlier version of Relevanssi and find your stopwords missing), just click the button on the stopwords settings page that restores the stopwords.
  • Changed behaviour: Changes to post weights in the relevanssi_results hook did not affect the relevance scores shown in excerpts. That's changed now, and the displayed scores are now taken from the $doc_weight array, which is returned in the return value array from relevanssi_search().
  • Changed behaviour: Excerpt length and type are now checked outside the loop that goes through the posts. This reduces the number of database calls required.
  • Minor fix: Searching for regex special characters (for example parentheses, brackets) caused problems in excerpts.
  • Minor fix: Improvements in handling highlighting for words with apostrophes.
  • Minor fix: Disregard hanging commas at the end of post exclusion settings.
  • Minor fix: Sometimes excerpts wouldn't have an ellipsis in the beginning even though they should.
4.4.1 2019-12-10
  • Major fix: Returns the missing stopwords.
4.3.4 2019-11-29
  • New feature: You can now give Gutenberg blocks a CSS class relevanssi_noindex to exclude them from being indexed. Relevanssi will not index Gutenberg blocks that have the class.
  • New feature: Relevanssi automatically skips some custom fields from common plugins that only contain unnecessary metadata.
  • New feature: The search results breakdown is added to the post objects and can be found in $post->relevanssi_hits. The data also includes new fields and the breakdown from the excerpt settings page can now show author, excerpt, custom field and MySQL column hits.
  • New feature: Relevanssi can now index Ninja Tables table content. This is something of an experimental feature right now, feedback is welcome.
  • New feature: New filter hook relevanssi_indexing_query filters the indexing query and is mostly interesting for debugging reasons.
  • Minor fix: Deleted and trashed comment contents were not deindexed when the comment was removed. That has been corrected now.
  • Minor fix: Phrase matching is now applied to attachments as well, including the attachments indexed for parent post.
  • Minor fix: Phrase matching only looks at custom fields that are indexed by Relevanssi.
  • Minor fix: Exact match bonus now uses the original query without synonyms added for the exact match check.
  • Minor fix: Paid Membership Pro filtering is only applied to published posts to prevent drafts from showing up in the search results.
4.3.3 2019-09-18
  • New feature: New filter hook relevanssi_indexing_adjust can be used to stop Relevanssi from adjusting the number of posts indexed at once during the indexing.
  • New feature: New filter hook relevanssi_acf_field_value filters ACF field values before they are indexed.
  • New feature: New filter hook relevanssi_disabled_shortcodes filters the array containing shortcodes that are disabled when indexing.
  • Removed feature: The relevanssi_indexing_limit option wasn't really used anymore, so it has been removed.
  • Changed behaviour: Indexing exclusions from Yoast SEO and SEOPress are applied in a different way in the indexing, making for a smoother indexing process.
  • Changed behaviour: WP Table Reloaded support has been removed; you really shouldn't be using WP Table Reloaded anymore.
  • Minor fix: Relevanssi won't choke on ACF fields with array or object values anymore.
  • Minor fix: Relevanssi uninstall process left couple of Relevanssi options in the database.
  • Minor fix: WPML language filter didn't work when fields was set to ids or id=>parent.
4.3.2 2019-08-27
  • New feature: SEOPress support, posts marked "noindex" in SEOPress are no longer indexed by Relevanssi by default.
  • Changed behaviour: Membership plugin compatibility is removed from relevanssi_default_post_ok function and has been moved to individual compatibility functions for each supported membership plugin. This makes it much easier to for example disable the membership plugin features if required.
  • Minor fix: The searchform shortcode now works better with different kinds of search forms.
  • Minor fix: Yoast SEO compatibility won't block indexing of posts with explicitly allowed indexing.
  • Minor fix: The relevanssi_the_tags() function printed out plain text, not HTML code like it should. The function now also accepts the post ID as a parameter.
  • Minor fix: Excerpt creation and highlighting have been improved a little.
4.3.1.1 2019-08-14
  • Remove notice about undefined index.
4.3.0 2019-08-13
  • New feature: Multi-phrase searches now respect AND and OR operators. If multiple phrases are included in an OR search, any posts with at least one phrase will be included. In AND search, all phrases must be included.
  • New feature: Admin search has been improved: there's a post type dropdown and the search is triggered when you press enter. The debug information has a div tag around it with the id debugging, so you can hide them with CSS if you want to. The numbering of results also makes more sense.
  • New feature: The date parameters (year, monthnum, w, day, hour, minute, second, m) are now supported.
  • New feature: New filter hook relevanssi_indexing_limit filters the default number of posts to index (10). If you have issues with indexing timing out, you can try adjusting this to a smaller number like 5 or 1.
  • New feature: Support for Paid Membership Pro added.
  • New feature: WordPress SEO support, posts marked "noindex" in WordPress SEO are no longer indexed by Relevanssi by default.
  • Removed feature: qTranslate is no longer supported.
  • Major fix: Tax query searching had some bugs in it, manifesting especially into Polylang not limiting the languages correctly. Some problems with the test suites were found and fixed, and similar problems won't happen again.
  • Minor fix: Admin search only shows editing options to users with enough capabilities to use them.
  • Minor fix: Phrase searching now uses filterable post statuses instead of a hard-coded set of post statuses.
  • Minor fix: The plugin action links were missing on the Plugins page list, they're back now.
  • Minor fix: Search terms with slashes won't cause errors anymore.
  • Minor fix: Relevanssi admin pages have been examined for accessibility and form labels have been improved in many places.
  • Deprecated: relevanssi_get_term_taxonomy() function is deprecated and will be removed at some point in the future.
4.3.1 2019-08-13
  • Adding a missing file.
4.2.0 2019-05-27
  • New feature: The search form shortcode has a new parameter dropdown which can be used to add a category dropdown, like this: [searchform dropdown="category"].
  • New feature: Relevanssi can now use the contents of the PDF files indexed with WP File Download.
  • New filter: relevanssi_indexing_tokens can be used to filter the tokens (individual words) before they are indexed.
  • Removed filter: relevanssi_default_meta_query_relation did not have any effect anymore.
  • Changed behaviour: The default taxonomy relation was set to AND in 4.1.4, but wasn't properly applied before. Now it is really switched.
  • Changed behaviour: New post types have been added to list of forbidden post types Relevanssi won't show as indexing options (ACF, TablePress and WooCommerce).
  • Major fix: Tax query processing has been completely refactored, eliminating all sorts of bugs, especially with various edge cases.
  • Major fix: Gutenberg block indexing only worked with the Gutenberg plugin enabled. It now works with WP 5.0 built-in Gutenberg as well. If you use Gutenberg blocks, reindex to get all the block content in the index.
  • Major fix: Excerpt-building and highlighting did not respect the "Keyword matching" setting. They do now, and the excerpts should be better now.
  • Major fix: AND searches needed queries that could get too long for the database to handle. This has been fixed and optimized.
  • Major fix: Taxonomy term subquery relations didn't work; now they are applied.
  • Minor fix: iOS uses curly quotes by default, and that didn't work as a phrase operator. Now phrase operator works with curly quotes and straight quotes.
  • Minor fix: The Did you mean broke with search terms longer than 255 characters.
  • Minor fix: Phrases with numbers and one word like "team 17" didn't work, because numbers weren't counted as words.
4.1.4 2019-05-09
  • EXISTS and NOT EXISTS didnt work for taxonomy terms in searches.
  • WPML post type handling has been improved. If post type allows fallback for default language, Relevanssi will support that.
  • Relevanssi now reminds you to set up automatic trimming for the logs. Its a really good idea, otherwise the logs will become bloated, which will hurt search performance.
  • The Groups posts filter is only applied to public posts to avoid drafts being shown to people who shouldnt see them.
  • The posts_per_page query variable didnt work; its now added to the introduced query variables so that it works.
  • Relevanssi wont log empty queries anymore.
  • The default tax query relation was switched from OR to AND to match the WP_Query default behaviour.
  • When used with WP 5.1, Relevanssi will now use wp_insert_site instead of the now-deprecated wpmu_new_blog.
  • Multisite blog creation is handled better in WP 5.1+.
  • Relevanssi now supports Restrict Content Pro permissions.
4.1.3 2019-02-14
  • Improvements to meta key sorting.
  • Relevanssi settings page won't let you exclude categories you have restricted the search to.
  • Members plugin compatibility has been improved: it's only used if the 'content permissions' feature has been enabled.
  • The excerpt settings page was a bit buggy.
  • Slimstat analytics is now added to the blocked shortcodes list.
  • New filter: relevanssi_search_form works exactly like get_search_form, but only applies to the Relevanssi shortcode search forms.
  • New JetPack taxonomies and post types have been added to the block list so they won't appear in Relevanssi settings.
4.1.2 2018-12-11
  • Choosing "CSS Style" for highlighting was not possible. That is now fixed.
  • Gutenberg reusable block indexing was fatally broken with the latest Gutenberg version. That has been updated.
  • Relevanssi now by default respects the WooCommerce "exclude from search" setting.
  • post__not_in still didn't work properly, it does now.
  • New filter: relevanssi_comparison_order can be used to define the sorting order when sorting the results by post type.
  • "Did you mean" process included a very slow query. It is now cached, leading in some cases to massive performance improvements (we're talking about several seconds here).
  • Highlights inside code and similar blocks are handled better now.
4.1.1.2 2018-11-12
  • Fixes the broken User searches page.
4.1.1 2018-11-07
  • Relevanssi can now index Gutenberg reusable blocks. (This functionality broke once already before release, so that can happen, since Gutenberg is still in very active development.)
  • The post__in and post__not_in parameters didn't work, and are now fixed. post_parent__in and post_parent__not_in are also improved.
  • You can use named meta queries for sorting posts. Meta query sorting is improved in other ways as well.
  • Log export didn't work properly.
  • Adding stopwords from the common word list has been fixed.
  • The relevanssi_get_words_having filter hook is now also applied to the free version Did you mean queries.
  • New filters: relevanssi_1day and relevanssi_7days can be used to adjust the number of days for log displays, so instead of 1, 7 and 30 days you can have anything you want.
4.1.1.1 2018-11-06
  • Adding the missing Gutenberg compatibility file.
4.1.0.1 2018-10-03
  • Actually working admin search.
4.1 2018-10-03
  • New feature: You can now export the search log as a CSV file.
  • New feature: Admin Search page allows you to perform searches in WP admin using Relevanssi.
  • New filter: relevanssi_admin_search_capability can be used to adjust who sees the admin search page.
  • New filter: relevanssi_entities_inside_pre and relevanssi_entities_inside_code adjust how HTML entities are handled inside pre and code tags.
  • Numeric meta values (meta_value_num) are now sorted as numbers and not strings.
  • Pinned posts have $post->relevanssi_pinned set to 1 for debugging purposes, but you can also use this for styling the posts in the search results templates.
  • The Did you mean feature has been toned down a bit, to make the suggestions slightly less weird in some cases.
  • Post parent parameters now accept 0 as a value, making it easier to search for children of any post or posts without a parent.
  • Polylang compatibility has been improved.
  • Phrases with apostrophes inside work better.
  • The relevanssi_excerpt filter hook got a second parameter that holds the post ID.
  • Custom field sorting actually works now.
  • WP Search Suggest compatibility added.
4.0.11 2018-08-03
  • Home page links were getting the highlight parameter even though they shouldn't. This has been fixed.
  • Added support for WP JV Post Reading Groups.
  • Improved handling of HTML entities.
  • Events Made Easy Calendar shortcodes are now removed when building excerpts.
  • set_time_limit() was removed from the indexing; it's no longer necessary, and it can break the indexing on sites that don't allow the use of the function.
  • relevanssi_post_title_before_tokenize filter was moved a bit so that it's the last thing that runs before tokenizing.
  • Disabled shortcodes are handled better in the indexing: the shortcode names won't be indexed anymore like they were before.
  • Made sure there won't be a warning for non-numeric values when searching.
  • New filter: relevanssi_clean_excerpt lets you remove unwanted highlights from excerpts.
  • Highlighting works better with pre and code tags.
  • New filter: relevanssi_comment_author_to_index lets you filter comment author names before indexing.
  • relevanssi_comment_content_to_index doesn't include the comment author name anymore.
4.0.10.1 2018-05-29
  • The privacy features caused an error notice with certain Relevanssi configurations, and the plugin required WP 4.9.6.
4.0.10 2018-05-28
  • Privacy: If you log search queries, Relevanssi will suggest some additional content to your privacy policy page.
  • Privacy: Relevanssi now supports the new Privacy Policy and Personal Data tools in WordPress 4.9.6.
  • Saving synonyms with quotes worked, but the synonyms showed up wrong.
  • Relevanssi could in some situations override navigation menu links with links to the user profiles or taxonomy terms found in the search. This update fixes that behaviour.
  • Random order works again; using orderby rand didn't work properly. The rand(seed) format is also supported now.
  • Fixed quotes and apostrophes in Did you mean suggestions.
4.0.9 2018-04-30
  • Fixes broken tag and category indexing and searching. If you use tags and categories, rebuild the index after updating.
  • Fixes phrase highlighting in documents.
  • New filter: relevanssi_indexing_restriction allows filtering posts before indexing.
  • New WooCommerce product visibility filtering tool makes WooCommerce product indexing faster.
  • MemberPress post controls were loose and showed drafts to searchers. That is now fixed.
  • Highlighting was too loose, even if matching was set to whole words.
  • Highlighting now works better in cases where there's a hyphen or an apostrophe inside a word.
4.0.8 2018-04-24
  • Fixed cases where Relevanssi added an ellipsis even if the excerpt was from the start of the post.
  • Highlighting now works with numeric search strings.
  • Improved highlighting for accented words. Thanks to Paul Ryan.
  • A surplus comma at the end of post exclusion setting won't break the search anymore.
  • Fixed instructions for adjusting the throttle limit.
4.0.7 2018-04-03
  • Recent post bonus is now applied to searches.
  • Exact term setting can now be disabled.
  • Users of Members plugin would have drafts appear in search results. This is now fixed.
4.0.6 2018-03-29
  • Indexing bugs squashed.
  • Missing tag and category weight settings returned.
  • Fusion builder shortcodes are removed from excerpts.
  • MemberPress post control was backwards.
  • User searches page reset buttons fixed.
  • WPML language filter fix.
4.0.5 2018-03-29
  • Relevanssi code has been reviewed and modified to follow WordPress coding standards. As a result, there have been minor improvements all around the code to make things more robust and secure.
  • Custom field detail is no longer serialized. It's now JSON. If you use custom field detail, rebuild the index and change your code to use json_decode() instead of unserialize().
  • relevanssi_the_tags() and relevanssi_get_the_tags() now have different set of parameters, more in line with the_tags() and get_the_tags().
  • Taxonomy indexing settings were emptied out if you saved another options tab. That is now fixed.
  • Improvements to WPML support; WPML is now less likely to be confused in multisite searches.
  • Updated filter: relevanssi_search_ok now gets the WP_Query object as a parameter, which is helpful if you're not using the global $wp_query.
  • ACF Flexible Content field indexing didn't work properly, possibly due to a change in ACF. That should now work better.

=

4.0.4 2018-03-26
  • Codebase review, lots of small improvements everywhere.
4.0.3 2017-12-15
  • Relevanssi didn't index all posts with one go. It does now.
  • and symbols caused problems in indexing; they are now included in the default punctuation removal.
  • In some cases excerpt-building could take ages because of autoembed link discovery. Relevanssi now blocks the autoembed procedure in link-building.
  • New filter: relevanssi_custom_field_value is used to filter custom field values both before indexing and before excerpt-building. Parameters include the field name and the post ID.
  • Updated filter: relevanssi_index_custom_fields now gets a second parameter that contains the post ID.
4.0.2 2017-12-04
  • Removed couple of error notices in the code.
  • Improved the support for page builders.
  • Improvements to the Polylang setting.
4.0.1 2017-12-01
  • The plugin can now be uninstalled.
4.0 2017-12-01
  • Legacy code has been removed. If you have a version older than 3.6, update first to 3.6.2.2 to guarantee smooth upgrade process.
  • Improved indexing: no more clicking "Continue indexing" again and again!
  • Settings pages have been completely rewritten.
  • There's documentation in the WordPress contextual help: just click Help on the top right corner.
  • Better Polylang support. A new option to remove the Polylang language filter.
  • Logs can be automatically trimmed. Old log entries are removed to save space.
  • Finally a setting to adjust content weight!
  • Excerpts can use the custom field content.
  • Highlighting in documents is changed: it now requires a highlight query parameter. This helps getting pass caching and makes the highlighting more reliable. To get the query parameter active, use relevanssi_get_permalink() to print out the permalinks on the search results templates.
  • Relevanssi added synonyms to highlighting even if synonyms were not used for searching. In some cases, synonyms were added twice.
  • The User Searches page got a makeover, too.
  • Relevanssi is automatically disabled in REST API searches.
  • Groups and Simple Membership support has been improved.
  • Sorting search results is now up to 300 times faster than before.
  • Lots of improvements all over the place.
  • New filter: relevanssi_excerpt_custom_field_content lets you modify custom field content that is used for excerpts.
  • New filter: relevanssi_punctuation_filter allows for easy modification of punctuation handling.
  • New filter: relevanssi_default_punctuation_replacement changes the default way to handle the rest of the punctuation.
  • New filter: relevanssi_search_again lets you run the search again if no results are found and to modify the parameters between search runs.
  • New filter: relevanssi_fallback allows you to do fallback searches.
  • New filter: relevanssi_page_builder_shortcodes lets you control which page builder shortcodes Relevanssi removes before building the excerpts.
  • New filter: relevanssi_optimize_excerpts makes excerpt-building faster, if you make the filter return true.
3.6.2.2 2017-10-28
  • A bug in post sorting broke string sorting (mostly post title sorting).
3.6.2.1 2017-10-27
  • A bug was left in the post ordering code. That bug is now squashed.
3.6.2 2017-10-26
  • Simple Membership plugin is now supported automatically to restrict access to posts.
  • Relevanssi can now handle orderby parameter in array format.
  • Relevanssi now blocks Easy Digital Downloads shortcodes when indexing to improve compatibility with EDD.
  • When using fields to only fetch post IDs, Relevanssi doesn't try to highlight post titles.
  • New action: relevanssi_update_options lets you adjust Relevanssi options immediately after the defaults are set.
  • Remove notices about duplicated database columns when installing the plugin.
3.6.1 2017-10-03
  • SECURITY: This version fixes a SQL injection vulnerability, where a site admin could theoretically inject SQL code into Relevanssi search queries. Doing this required access to Relevanssi settings page and in my tests, I couldn't do any damage, just break the Relevanssi search, but in any case, this vulnerability is now fixed.
  • Search and Filter shortcode is added to the blacklist.
  • Groups plugin is now supported automatically to restrict access to posts.
  • The filter relevanssi_index_custom_fields now works even if the custom field setting is empty.
  • The filter relevanssi_post_to_index now has a second parameter. For posts, it simply repeats the post object, but for taxonomy terms, it has the term object.
3.6.0 2017-08-29
  • Changed a bit how Relevanssi attaches itself to queries. Instead of the global $wp_query, Relevanssi now uses the query passed as the parameter to the_posts filter hook. This should improve compatibility in some cases, but may cause problems in some fringe cases. If you're doing something unusual with Relevanssi, try this out before deploying to public use.
  • Some meta queries caused major problems with the Relevanssi weighting algorithm. This has now been fixed.
  • Error notices caused by trying to use a non-existing taxonomy term have been removed.
3.5.12 2017-08-10
  • Post type exclusion didn't work as expected.
  • Relevanssi couldn't handle nested tax queries (such as those generated by WooCommerce product visibility filtering) properly.
3.5.11.1 2017-07-07
  • New filter: relevanssi_allow_one_letter_highlights lets you allow one-letter highlights. Just make the filter function return true.
  • New filter: relevanssi_block_one_letter_searches by default blocks one-letter searches. If you want to enable them, add a filter function that always returns false.
  • Fixed an undefined variable notice.
3.5.11 2017-06-29
  • Synonym indexing failed if synonyms contained a forward slash.
  • Highlighting HTML tags has been improved further.
  • New filter: relevanssi_tag_before_tokenize allows you to access tag content before indexing.
  • Relevanssi now actively blocks one-letter search terms, as they are generally pointless and can cause "out of memory" issues. One-letter search terms are no longer highlighted, either. These are usually caused by cases like "word's" being interpreted as "word s".
  • New filter: relevanssi_disable_shortcodes_excerpt lets you add more shortcodes to be disabled before excerpts are built.
3.5.10 2017-05-20
  • Some users got a fatal parse error. That shouldn't happen anymore.
  • FacetWP users ran into trouble, as relevanssi_do_query() started to explicitly expect a WP_Query object in version 1.15.0. That expectation is removed; it's still highly recommended for future compatibility that you use WP_Query objects.
  • Small bug fix: get_current_screen() is now only used when it's available to avoid occasional fatal errors.
  • Error messages from DOING_AJAX being undefined should be removed.
3.5.9.1 2017-05-14
  • WP.org plugin repo didn't like 3.5.9 for some reason, hoping to have better luck with this.
3.5.9 2017-05-14
  • Improved the way highlighting handles HTML tags, especially when highlighting on post pages.
  • The throttle limit setting was removed from the settings page for causing trouble. If you need to change it, update relevanssi_throttle_limit option directly.
  • Relevanssi didn't support tax_queries with field set to name. That works now.
  • Much faster way of showing the 25 most common words in the index. If you've disabled this feature because it was so slow, try enabling it - you might be surprised!
3.5.8 2017-03-28
  • Did you mean function had a XSS vulnerability, which is now removed.
  • Minimum word length wasn't applied to titles in indexing. It is now fixed. If you think this is a problem, rebuild the index.
  • TablePress compatibility has been improved.
  • Meta query handling has been improved, thanks to Maxime Culea.
  • Improved WP_Query parameter support: setting query variable sentence to 1 forces phrase search.
  • Improved ACF compatibility.
3.5.7.1 2017-01-25
  • Small fix for a bug that broke the settings page.
3.5.7 2017-01-23
  • An improved version of the sorting function will not throw notices when Intuitive Custom Post Order plugin is used.
  • New filter: relevanssi_missing_sort_key can be used to adjust the result sorting when using keys that are not present in all posts (eg. menu_order).
  • Czech translation and stopwords, thanks to Michael Kucera.
  • Relevanssi broke the WP admin menu search when admin searches were enabled.
  • Relevanssi broke the admin page search under WP 4.7. Relevanssi is now disabled in admin page searches.
  • The way accented characters are handled in highlighting is improved. A new filter, relevanssi_accents_replacement_arrays, can be used to adjust the accent replacement.
3.5.6.1 2016-12-08
  • Fix for a fatal bug in 3.5.6.
3.5.6 2016-11-01
  • Relevanssi admin page had a vulnerability that allowed SQL injection attacks. That is now fixed.
  • Relevanssi didn't like to highlight search terms that are followed by a ?, an ! or an apostrophe.
  • New filter: relevanssi_ok_to_log lets you control whether search queries are logged or not.
3.5.5 2016-10-19
  • 500 errors caused by arrays in custom fields should be gone now.
  • Improvements to the ACF "select" field support.
  • Relevanssi will not break when frontend plugins insert posts.
  • relevanssi_match filter has a new parameter, which contains the search term.
  • Polylang support has been improved.
  • WPML and Polylang filters work when "fields" is set to "ids".
  • New filter: relevanssi_log_get_user gets passed the user object before Relevanssi decides if the query should be logged or not.
3.5.4 2016-08-19
  • Relevanssi had a bug that lead to inflated relevancy scores for posts.
  • Relevanssi can now index the human-readable labels of ACF "select" fields. (Thanks to Raphal Droz.)
  • New filter: relevanssi_30days can be used to adjust the 30 day logs to a different number of days.
  • Adding stopwords that contain apostrophes didn't work.
  • Ensured PHP7 and WP 4.6 compatibility.
  • Fixed a small glitch that could happen if a highlighted term is next to a starting square bracket.
3.5.3 2016-04-20
  • New filter relevanssi_user_searches_limit to adjust the number of user searches shown in the logs.
  • Old data check is only done on Relevanssi settings page, not on all admin pages. That should improve admin performance.
  • Fixed a fatal error when searching includes private posts.
  • New filter: relevanssi_remote_addr can be used to modify the IP address logged to Relevanssi logs.
  • Blocked CFDB and WooCommerce shortcodes that are causing problems with Relevanssi.
3.5.2 2016-01-09
  • Added correct support for term_taxonomy_id in the fields parameter in tax_queries.
3.5.1 2016-01-08
  • Fixed an error in the Did you mean function.
  • Fixed an error if the search term was not found in content.
  • Fixed an error when building excerpts from posts shorter than the excerpt length.
  • Blocked the [starpro] shortcode that was causing problems with Relevanssi.
  • New filter: relevanssi_remove_stopwords_in_titles allows you to include stopwords in titles.
  • Added support for term_tax_id in the fields parameter in tax_queries.
  • Excerpt-building failed if multibyte string operations were missing. It should work now.
3.5 2015-12-10
  • Tokenizer was using strlen() and not mb_strlen(), so word lengths were not calculated properly. If your site uses non-ASCII alphabet, rebuilding the index is a good idea.
  • Small improvement to WPML multilanguage filtering.
  • relevanssi_the_title() got a new parameter: if you don't want to echo the title, you can use it like relevanssi_the_title(false) to make it return the title.
  • Relevanssi had the_title filter hook calls that were missing the second parameter; that's now fixed.
  • The excerpt-building algorithm is completely rewritten based on work by Ben Boyter (http://www.boyter.org/).
  • The [watupro] shortcode didn't work with Relevanssi, so Relevanssi will now bypass it.
  • The plugin i18n features have been improved slightly.
  • New filter: relevanssi_didyoumean_suggestion lets you modify the Did you mean? suggestion before it's displayed.
  • relevanssi_didyoumean() has a new parameter: you can now choose whether the result is echoed out (the default value) or just returned.
  • In the search results breakdown, you can now use %categories% and %taxonomies% to show the number of matches in categories and taxonomies other than tags and cats, respectively.
  • Relevanssi supports fields parameter (both ids and id=>parent) to return only post IDs or post IDs and post parents.
3.4.2 2015-09-17
  • Empty lines on synonym settings caused problems. Fixed that.
  • In WordPress 4.2 installations, emoji in will be handled better. Emoji in posts may cause problems with WordPress versions below 4.2, so please update!
3.3.8 2014-12-20
  • Fixed a bug that caused the results to change depending of the order of words in a multi-word search query.
  • Added product_categories and recent_products from WooCommerce to the list of blocked shortcodes.
  • There are improvements in excerpt-building and highlighting, especially when fuzzy search is enabled.
  • Fixed a possible (if quite unlikely) XSS vulnerability.
  • Improved search performance (thanks to MikeNGarrett).
  • Sometimes highlights in documents make the document content disappear. I don't know why, but I've added a fix that should make the content visible (without the highlights) if a problem appears.
3.2 2013-12-13
  • Fixed a bug in the TablePress support.
  • Titles are put through the_title filter before indexing.
  • New filter: relevanssi_join can be used to join tables in the Relevanssi search MySQL queries. Thanks to Ninos Ego.
  • New filter: relevanssi_post_content can be used to modify post content before any Relevanssi processing.
  • New filter: relevanssi_post_content_before_tokenize can be used to modify post content just before it's tokenized.
  • New filter: relevanssi_indexing_values can be used to modify what Relevanssi stores in the index.
  • New filter: relevanssi_default_meta_query_relation can be used to change the default meta query relation (default value is "AND").
  • When using a meta_query, relation can be set to OR now.
  • Phrases are now matched to excerpts.
  • Number of queries Relevanssi generates is much, much lower.
  • New filter: relevanssi_didyoumean_url lets you modify the URL generated by the did you mean feature.
  • Better set of Russian stopwords.
  • Relevanssi now highlights search query synonyms as well in documents.
3.1.9 2013-10-25
  • Fix to make Relevanssi compatible with WordPress 3.7.
  • Fixed a mistyped database table name.
  • Relevanssi disables responsive-flipbook shortcode in indexing; it was causing problems.
  • Fixed a problem with an author dropdown with no author selected.
3.0.5 2012-09-29
  • AFTER UPGRADING FROM 2.x: Make sure you deactivate and reactivate Relevanssi in order to make the database changes happen.
  • Fixed a major bug that caused the searches to fail when "Limit searches" was enabled, but "Limit" was not defined.
  • Modified relevanssi_remove_punct() to replace curly apostrophes and quotes with spaces instead of removing them, to make the index more consistent (regular apostrophes were replaced with spaces). Reindexing the database is a good idea.
  • Fixed some misleading text on the options page.