ElasticPress

Disgrifiad

ElasticPress, a fast and flexible search and query engine for WordPress, enables WordPress to find or “query” relevant content extremely fast through a variety of highly customizable features. WordPress out-of-the-box struggles to analyze content relevancy and can be very slow. ElasticPress supercharges your WordPress website making for happier users and administrators. The plugin even contains features for popular plugins.

Here is a list of the amazing ElasticPress features included in the plugin:

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

Instant Results: A built for WordPress search experience that bypasses WordPress for optimal performance. Instant Results routes search queries through a dedicated API, separate from WordPress, returning results up to 10x faster than previous versions of ElasticPress.

WooCommerce: With ElasticPress, filtering WooCommerce product results is fast and easy. Your customers can find and buy exactly what they’re looking for, even if you have a large or complex product catalog.

Related Posts: ElasticPress understands data in real time, so it can instantly deliver engaging and precise related content with no impact on site performance.

Protected Content: Optionally index all of your content, including private and unpublished content, to speed up searches and queries in places like the administrative dashboard.

Documents: Indexes text inside of popular file types, and adds those files types to search results.

Autosuggest: Suggest relevant content as text is entered into the search field.

Filters: Add controls to your website to filter content by one or more taxonomies.

Comments: Indexes your comments and provides a widget with type-ahead search functionality. It works with WooCommerce product reviews out-of-the-box.

Lluniau Sgrin

  • Features Page
  • Search Fields & Weighting Dashboard
  • Sync Page
  • Synonyms Dashboard
  • Instant Results modal

Blocks

This plugin provides 7 blocks.

  • Search Comments Let visitors search your site's comments.
  • Filter by Post Type Let visitors filter your content by post type.
  • Filter by Metadata Let visitors filter your content by metadata values.
  • Filter by Metadata Range – Beta Let visitors filter your content by a range of metadata values.
  • Filter by Post Date Let visitors filter your content by post date.
  • Filter by Taxonomy Let visitors filter your content by taxonomy terms, such as categories or tags.
  • Related Posts Display a continuously updated list of related posts.

Gosod

  1. First, you will need to properly install and configure Elasticsearch.
  2. Activate the plugin in WordPress.
  3. In the ElasticPress settings page, input your Elasticsearch host.
  4. Sync your content by clicking the sync icon.
  5. Enjoy!

Cwestiynau Cyffredin

How does ElasticPress work?

The ElasticPress plugin enables you to connect your WordPress site to the ElasticPress.io service, a SaaS solution that provides an enhanced search experience while reducing load on your WordPress site. For advanced users familiar with both WordPress and Elasticsearch hosting and management, ElasticPress also offers support for plugin functionality using an Elasticsearch instance. Please keep in mind that there are multiple security, performance, and configuration considerations to take into account if you take this approach.

I have to use an in-house or custom Elasticsearch solution due to policy or institutional requirements. Can you still help?

If circumstances prevent the use of a SaaS solution like ElasticPress.io, we can also provide consulting around installation and configuration of custom Elasticsearch instances.

Where can I find ElasticPress documentation and user guides?

Please refer to GitHub for detailed usage instructions and documentation. FAQs and tutorials can be also found on our support site.

I have a problem with the plugin. Where can I get help?

If you have identified a bug or would like to suggest an enhancement, please refer to our GitHub repo. We do not provide support here at WordPress.org forums.

If you are an ElasticPress.io customer, please open a ticket in your account dashboard. If you need a custom solution, we also offer consulting.

Where do I report security bugs?

You can report any security bugs found in the source code of ElasticPress through the Patchstack Vulnerability Disclosure Program. The Patchstack team will assist you with verification, CVE assignment and take care of notifying the developers of this plugin.

Is ElasticPress compatible with OpenSearch or Elasticsearch X.Y?

ElasticPress requirements can be found in the Requirements section of our GitHub repository. If your solution relies on a different server or version, you may find additional information on our Compatibility documentation page.

I really like ElasticPress! Can I contribute?

For sure! Feel free to submit ideas or feedback in general to our GitHub repo. If you can, also consider sending us a review.

Adolygiadau

Medi 28, 2022 1 reply
This plugin is solid and very easy to set up. It also integrates very well with custom code and the search functionality can be easily extended or customised.
Mawrth 30, 2022 1 reply
Definitely helps speed up the Wordpress search. It is at par with many other premium plugins out there. Highly appreciate and recommend this one. Also great support.
Chwefror 12, 2022 1 reply
Look people, you need to set up elasticSEARCH on your server first, or use a paid service. This plugin (elasticPRESS) works as advertised and it’s clear that some ignorant people are penalizing this plugin for the difficulties inherent in setting up the server, and/or they don’t know how to add custom code snippets here and there. Two thumbs way up from me.
Read all 29 reviews

Contributors & Developers

“ElasticPress” is open source software. The following people have contributed to this plugin.

Cyfranwyr

“ElasticPress” has been translated into 3 locales. Thank you to the translators for their contributions.

Translate “ElasticPress” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Cofnod Newid

5.1.0 – 2024-04-29

Added:

  • [Filters] New ep_facet_enabled_in_editor filter to enabled facet blocks in the post editor. Props @JiveDig and @felipeelia.
  • Official support to Elasticsearch 8.x. Props @felipeelia.
  • A new Sync errors tab, with errors grouped by type and links to support documentation when available. Props @JakePT and @apurvrdx1.
  • [WooCommerce] HPOS compatibility notice for WooCommerce Orders. Props @felipeelia.
  • [Synonyms] A new settings screen with the the ability to bulk delete synonyms, support for many-to-many replacements, and a new type of synonym for terms with a hierarchical relationship, called hyponyms. Props @JakePT and @apurvrdx1.
  • Infinite loop when using excerpt highlighting with posts that use blocks that print an excerpt. Props @felipeelia and @JakePT.
  • Context parameter to the get_capability() function. Props @felipeelia and @selim13.
  • A tooltip for meta keys to the weighting screen to allow seeing the full key if it has been truncated. Props @JakePT.
  • New ep_weighting_options filter to modify the weighting dashboard options. Props @burhandodhy.
  • New ep_post_test_meta_value filter. Props @felipeelia.
  • New message related to indices limits on ElasticPress.io. Props @felipeelia.

Changed:

  • Acknowledge all Elasticsearch modules, making the Documents feature available in ES 8 installations by default. Props @felipeelia, @Serverfox, and @jerasokcm.
  • [Documents] Index CSV and TXT file contents. Props @felipeelia.
  • [Documents] Only set documents-related parameters if no post type was set or if the list already contains attachments. Props @felipeelia.
  • Automatically open the error log when a sync completes with errors. Props @JakePT and @felipeelia.
  • Aggregations created with the ‘aggs’ WP_Query parameter, are now retrievable using $query->query_vars['ep_aggregations']. Props @felipeelia.
  • Major refactor of the Term::format_args() method and conditionally set search fields for term queries in REST API requests. Props @felipeelia and @mgurtzweiler.
  • Replaced lee-dohm/no-response with actions/stale to help with closing no-response/stale issues. Props @jeffpaul.
  • Bumped actions/upload-artifact from v3 to v4. Props @iamdharmesh.
  • Required node version. Props @oscarssanchez.

Fixed:

  • [Autosuggest] Hide the Autosuggest Endpoint URL field for EP.io users. Props @felipeelia and @JakePT.
  • [Autosuggest] Google Analytics integration gtag call. Props @felipeelia and @JakePT.
  • [Autosuggest] Link click when using a touchpad. Props @romanberdnikov.
  • [Autosuggest] Pressing Enter to select an Autosuggest suggestion would instead open Instant Results. Props @JakePT.
  • [Synonyms] Fatal error when saving synonyms if an index does not exist. Props @felipeelia, @MARQAS, @randallhedglin, and @bispldeveloper.
  • [Synonyms] Fix Synonyms case sensitive issue. Props @burhandodhy.
  • [Documents] Media search returns no result in admin dashboard. Props @felipeelia and @burhandodhy via #3837.
  • [WooCommerce] E2e tests. Props @felipeelia.
  • [Instant Results] A default post type filter set by a field in the search form was cleared if a new search term was entered. Props @JakePT and @burhandodhy.
  • Inconsistent search results when calling the same function via PHP and Ajax. Props @burhandodhy.
  • Unit test related to blog creation. Props @felipeelia and @burhandodhy.
  • Correct PHPdoc return type for Elasticsearch::index_document and related methods. Props @ictbeheer.
  • Unnecessary horizontal scroll for the <pre> tag on the status report page. Props @burhandodhy via #3894.

Security:

  • Bumped composer/composer from 2.6.5 to 2.7.0. Props @dependabot.

5.0.2 – 2024-01-16

Changed:

  • [Terms] Counts are now calculated with wp_count_terms() in query_db. Props @rebeccahum.
  • Composer and npm files are now part of the final package. Props @felipeelia.

Fixed:

  • [WooCommerce] Not use a hard-coded list of order post types. Props @felipeelia.
  • [Autosuggest] Stop calling the get-autosuggest-allowed endpoint to build the REST API schema. Props @felipeelia.

Security:

  • Bumped follow-redirects from 1.15.3 to 1.15.4. Props @dependabot.

5.0.1 – 2023-12-12

Added:

  • Failed queries in the Index Health page will now be outputted with their error messages. Props @felipeelia and @pvnanini.

Fixed:

5.0.0 – 2023-11-01

ElasticPress 5.0.0 contains some important changes. Make sure to read these highlights before upgrading:

  • This version does not require a full reindex but it is recommended, especially for websites using synonyms containing spaces.
  • Meta keys are not indexed by default anymore. The new Weighting Dashboard allows admin users to mark meta fields as indexables. The new ep_prepare_meta_allowed_keys filter allows to add meta keys programmatically.
  • Features now have their fields declared in JSON. Custom features may need to implement the set_settings_schema() method to work.
  • The Users feature was moved to the ElasticPress Labs plugin and is no longer available in this plugin. If you use this feature, make sure to install and configure EP Labs before upgrading.
  • The Terms and Comments features are now hidden by default for sites that do not have them active yet. Check our blog post for more info.
  • New minimum versions are:
    • Elasticsearch: 5.2
    • WordPress: 6.0
    • PHP: 7.4

Added:

Changed:

  • Abstracted Sync page logic into a provider pattern. Props @JakePT.
  • Moved syncing from an admin-ajax.php callback to a custom REST API endpoint with support for additional arguments. Props @JakePT.
  • Store previous syncs info, changed option name from ep_last_index to ep_sync_history. Props @felipeelia and @JakePT.
  • Features settings declared as JSON. Props @felipeelia and @JakePT.
  • Tweaked layout and notifications style on the Status Report screen for consistency with the updated Sync page. Props @JakePT.
  • Moved REST API endpoint definitions to controller classes. Props @JakePT.
  • SyncManager array queues are now indexed by the blog ID. Props @sathyapulse and @felipeelia.
  • Comments and Terms are now hidden by default. Props @felipeelia.
  • WooCommerce-related hooks are now removed when switching to a site that does not have WC active. Props @felipeelia and @MARQAS.
  • Run e2e tests against the minimum supported WordPress version. Props @felipeelia.
  • Several tweaks in the Features settings API. Props @JakePT via #3708.
  • EP Settings are now reverted if it is not possible to connect to the new ES Server. Props @felipeelia, @burhandodhy, and @scottbuscemi.
  • Node packages updated. Props @felipeelia.
  • Updated the labels of feature settings and options for consistency and clarity. Props @JakePT.
  • Depending on the requirements, some feature settings are now saved to be applied after a full sync. Props @felipeelia and @JakePT.
  • Minimum requirements. Props @felipeelia and @brandwaffle.
  • Old features will have their settings displayed based on their default setting values. Props @felipeelia and @JakePT.
  • Radio and checkbox settings were changed from booleans to strings. Props @felipeelia and @JakePT.
  • The troubleshooting article link was updated. Props @felipeelia and @anjulahettige.

Deprecated:

  • The IndexHelper::get_last_index method was replaced by IndexHelper::get_last_sync.
  • The FailedQueries::maybe_suggest_solution_for_es method was replaced by ElasticsearchErrorInterpreter::maybe_suggest_solution_for_es.
  • Weighting::render_settings_section, Weighting::handle_save, Weighting::redirect, and Weighting::save_weighting_configuration were deprecated in favor of React components.

Removed:

  • Users-related files from the main plugin. Props @felipeelia.
  • Removed mapping files related to older versions of Elasticsearch. Props @MARQAS.

Fixed:

  • Docblock for the ep_facet_renderer_class filter. Props @misfist.
  • Instant Results console warning. Props @burhandodhy.
  • Total fields limit message interpretation. Props @felipeelia @JakePT.
  • End to end tests intermittent failures. Props @felipeelia.
  • React warning on Sync page. Props @burhandodhy.
  • Content was not showing properly on the tooltop on install page. Props @burhandodhy.
  • Redirect to correct sync url after enabling feature that requires a new sync. Props @burhandodhy.
  • Post type setting wasn’t respected during sync. Props @burhandodhy.
  • Fix a JS error appearing when sync requests are intentionally stopped. Props @burhandodhy.
  • Features description copy. Props @felipeelia, @burhandodhy, and @MARQAS.
  • Endpoint URL field is not a URL type field. Props @burhandodhy.
  • WooCommerce feature not autoactivating. Props @felipeelia.
  • Elasticsearch errors interpretation. Props @felipeelia.
  • Deactivating a feature via WP-CLI also takes into account draft states. Props @felipeelia.

4.7.2 – 2023-10-10

Added:

Removed:

  • Unnecessary aliases in use statements. Props @felipeelia.

Fixed:

  • Calls to ep_woocommerce_default_supported_post_types were ignored. Props @felipeelia and @MARQAS.
  • WooCommerce Orders search field disappearing when Orders Autosuggest receives an unexpected response from ElasticPress.io. Props @JakePT and @anjulahettige.
  • Call composer while building docs. Props @felipeelia.
  • Make sure post__not_in and post_status are translated into arrays, not objects. Props @felipeelia.
  • Updated phpDoc entries. Props @renatonascalves.
  • Docblock for Utils\get_option return type. Props @felipeelia.
  • Docblock for ep_capability and ep_network_capability filters. Props @burhandodhy.
  • PHP warning related to the Autosuggest template generation. Props @felipeelia.
  • WooCommerce unit tests running multiple times. Props @felipeelia.
  • Display the meta range facet block in versions prior to WP 6.1. Props @felipeelia and @MARQAS.
  • Number of expected arguments for add_attachment and edit_attachment. Props @burhandodhy.
  • Error while running composer install on PHP 8. Props @burhandodhy.

Security:

  • Bumped composer/composer from 2.5.8 to 2.6.4. Props @dependabot.

4.7.1 – 2023-08-31

Note that starting from the ElasticPress 5.0.0 release the Users feature will be moved to the ElasticPress Labs plugin. The Terms and Comments features will remain in ElasticPress but will be available only if enabled via code. Check our blog post for more info.

Added:

  • Synonyms and weighting settings added to the status report. Props @felipeelia.

Changed:

  • Composer packages are namespaced by Strauss. Props @felipeelia and @junaidbhura.
  • E2e tests now log the formatted query info from Debug Bar ElasticPress. Props @felipeelia.

Fixed:

  • WooCommerce products sorted by popularity are now always sorted in a descending order. Props @felipeelia and @burhandodhy.
  • E2e tests with WordPress 6.3. Props @felipeelia.

4.7.0 – 2023-08-10

Note that starting from the ElasticPress 5.0.0 release the Users feature will be moved to the ElasticPress Labs plugin. The Terms and Comments features will remain in ElasticPress but will be available only if enabled via code. Check our blog post for more info.

Added:

  • Exclude Media Attachments from search results. Props @burhandodhy.
  • New Default to Site Language option in the language dropdown in ElasticPress’ settings page. Props @felipeelia.
  • Compatibility with block themes for the Facet meta blocks. Props @felipeelia.
  • Integrate Did You Mean feature in the Instant Results. Props @burhandodhy and @JakePT.
  • All blocks now support styling features in themes that support them. Props @JakePT.
  • Descriptions and keywords have been added to all blocks. Props @JakePT.
  • New ep_stop filter, that changes the stop words used according to the language set. Props @felipeelia.
  • New get-index-settings WP-CLI command. Props @felipeelia.
  • New ep_facet_tax_special_slug_taxonomies filter. Props @oscarssanchez.
  • New --stop-on-error flag to the sync command. Props @oscarssanchez.
  • New get WP-CLI command. Props @felipeelia.
  • Transient utility functions. Props @felipeelia.
  • Indices’ language settings in status reports. Props @felipeelia.
  • Initial changes to implement a DI Container. Props @felipeelia and @tott.
  • New $only_indexable parameter to the Utils\get_sites() function. Props @felipeelia.

Changed:

Deprecated:

  • Autosuggest::delete_cached_query() was deprecated without a replacement. See #3566.
  • EP_Uninstaller::delete_related_posts_transients() and EP_Uninstaller::delete_total_fields_limit_transients() was merged into EP_Uninstaller::delete_transients_by_name. See #3548.
  • The ep_woocommerce_default_supported_post_types filter was split into ep_woocommerce_orders_supported_post_types and ep_woocommerce_products_supported_post_types. See #3502.
  • The ep_woocommerce_supported_taxonomies filter is now ep_woocommerce_products_supported_taxonomies. See #3502.
  • All old WooCommerce\Orders methods were migrated to the new WooCommerce\OrdersAutosuggest class. See #3502.
  • The Elasticsearch::clear_total_fields_limit_cache() method was replaced by Elasticsearch::clear_index_settings_cache(). See #3552.
  • Several methods that were previously part of the WooCommerce\WooCommerce class were moved to the new WooCommerce\Product class. See #3502.
  • Several methods that were specific to Facet types were moved to the new Block and Renderer abstract classes. See #3499.

Fixed:

  • Same error message being displayed more than once on the Dashboard sync. Props @felipeelia, @MARQAS, @tott, and @wildberrylillet.
  • Sync media item when attaching or detaching media. Props @MARQAS and @felipeelia.
  • Display “Loading results” instead of “0 results” on first search using Instant Results. Props @oscarssanchez and @JakePT.
  • Highlighting returning inaccurate post title when partial/no term match on Instant Results. Props @oscarssanchez, @JakePT, and @tomi10up.
  • Warning in Orders Autosuggest: "Creation of dynamic property $search_template is deprecated". Props @burhandodhy.
  • Warning while using PHP 8.1+: Deprecated: version_compare(): Passing null to parameter #1 ($version1) of type string is deprecated. Props @felipeelia and @burhandodhy.
  • Warning in the metadata range facet renderer: Undefined array key "is_preview". Props @felipeelia and @burhandodhy.

Security:

  • Bumped word-wrap from 1.2.3 to 1.2.4. Props @dependabot.
  • Bumped tough-cookie from 4.1.2 to 4.1.3 and @cypress/request from 2.88.10 to 2.88.12. Props @dependabot.

4.6.1 – 2023-07-05

Note that starting from the ElasticPress 5.0.0 release the Users feature will be moved to the ElasticPress Labs plugin. The Terms and Comments features will remain in ElasticPress but will be available only if enabled via code. Check our blog post for more info.

Added:

  • Add doc url for “Did You Mean” feature. Props @burhandodhy.

Changed:

  • Use wp_cache_supports over wp_cache_supports_group_flush. Props @spacedmonkey.
  • Update the ep_exclude_from_search post meta only if it is set or has some value. Props @MARQAS and @columbian-chris.

Fixed:

  • Deprecation notice in ElasticPress\Feature\WooCommerce\Orders. Props @mwidmann.
  • Don’t apply a facet filter to the query if the filter value is empty. Props @burhandodhy.
  • Syncing a post with empty post meta key. Props @MARQAS and @oscarssanchez.
  • Order by clauses with Elasticsearch field formats are not changed anymore. Props @felipeelia and @tlovett1.
  • Failed Query logs are automatically cleared on refreshing the “Status Report” page. Props @burhandodhy.
  • Warning message on Health page when Last Sync information is not available. Props @burhandodhy.
  • Deprecation notice: json_encode(): Passing null to parameter #2. Props @burhandodhy.
  • Documentation of the ep_facet_search_get_terms_args filter. Props @burhandodhy.

4.6.0 – 2023-06-13

Note that starting from the ElasticPress 5.0.0 release the Users feature will be moved to the ElasticPress Labs plugin. The Terms and Comments features will remain in ElasticPress but will be available only if enabled via code. Check our blog post for more info.

Added:

Changed:

  • If no index is found, the “failed queries” message will be replaced with a prompt to sync. Props @felipeelia.
  • Bumped Cypress version to v12. Props @felipeelia.
  • Documentation partially moved to Zendesk. Props @felipeelia and @brandwaffle.

Fixed:

  • Fatal error related to the maybe_process_error_limit function. Props @burhandodhy.
  • Display the error message returned by Elasticsearch if a mapping operation fails. Props @felipeelia via #3464.
  • Negative menu_order values being transformed into positive numbers. Props @felipeelia and @navidabdi.
  • Password protected content being indexed upon save when Protected Content is not active. Props @felipeelia and @burhandodhy.
  • Error message when the Elasticsearch server is not available during the put mapping operation. Props @felipeelia.

4.5.2 – 2023-04-19

Note that starting from the ElasticPress 5.0.0 release the Users feature will be moved to the ElasticPress Labs plugin. The Terms and Comments features will remain in ElasticPress but will be available only if enabled via code. Check our blog post for more info.

Added:

  • New ep_enable_query_integration_during_indexing filter. Props @rebeccahum.

Changed:

Fixed:

  • Authenticated requests for autosuggest were not being properly cached while using external object cache. Props @felipeelia.

4.5.1 – 2023-04-11

Note that starting from the ElasticPress 5.0.0 release the Users feature will be moved to the ElasticPress Labs plugin. The Terms and Comments features will remain in ElasticPress but will be available only if enabled via code. Check our blog post for more info.

Added:

  • New ep_instant_results_args_schema filter for filtering Instant Results arguments schema. Props @JakePT.
  • New ep.Autosuggest.navigateCallback JS filter for changing the behavior of a clicked element on Autosuggest. Props @oscarssanchez, @felipeelia, and @JakePT.
  • New ep.Autosuggest.fetchOptions JS filter for filtering Elasticsearch fetch configuration of Autosuggest. Props @tlovett1, @MARQAS, and @felipeelia.
  • Code linting before pushing to the repository. Props @felipeelia.
  • Unit tests for the Status Reports feature. Props @burhandodhy.

Changed:

  • Meta field facets now only filter based on fields selected on blocks. The new ep_facet_should_check_if_allowed filter reverts this behavior. Props @felipeelia and @burhandodhy.

Fixed:

  • Instant Results crashing when using taxonomies as facets that are attached to both searchable and non-searchable post types. Props @JakePT.
  • Fatal error during plugin uninstall. Props @felipeelia.
  • Compatibility issue which prevented Instant Results from working in WordPress 6.2. Props @JakePT.
  • Fatal error while syncing on older versions of WordPress. Props @felipeelia, @TorlockC.
  • Facets removing taxonomy parameters in the URL when not using pretty permalinks. Props @MARQAS and @felipeelia.
  • JS errors when creating Facet blocks in WP 6.2. Props @felipeelia and @burhandodhy.
  • ep_index_meta option blowing up on an indexing process with many errors. Props @rebeccahum and @felipeelia.
  • Typo in index_output WP-CLI command help text. Props @bratvanov.
  • React warning messages for the comments block. Props @burhandodhy.
  • Fixed action_edited_term to call kill_sync in SyncManager for post Indexable. Props @rebeccahum.
  • Undefined array key 'index' during sync. Props @felipeelia and @burhandodhy.
  • Meta Range Facet Block e2e tests. Props @oscarssanchez and @felipeelia.
  • Users e2e tests using WP 6.2. Props @felipeelia.

Security:

  • Bumped webpack from 5.75.0 to 5.76.3. Props @dependabot.

4.5.0 – 2023-03-09

Note that starting from the ElasticPress 5.0.0 release the Users feature will be moved to the ElasticPress Labs plugin. The Terms and Comments features will remain in ElasticPress but will be available only if enabled via code. Check our blog post for more info.

ElasticPress 4.5.0 release highlights:

Added:

  • Autosuggest for WooCommerce Orders. Props @JakePT and @felipeelia.
  • New Facet by Meta Range block (currently in Beta.) Props @felipeelia.
  • Option to display term counts in Facets blocks. Props @felipeelia.
  • New capability for managing ElasticPress. Props @tlovett1, @tott, and @felipeelia.
  • New “Download report” button in the Status Report page. Props @felipeelia.
  • ElasticPress.io messages system. Props @felipeelia and @JakePT.
  • WP CLI commands get-search-template, put-search-template, and delete-search-template. Props @oscarssanchez.
  • New --status parameter to the get-indices WP-CLI command. Props @felipeelia.
  • New ep_instant_results_per_page filter for changing the number of results per page in Instant Results. Props @JakePT.
  • Support for post_parent__in and post_parent__not_in. Props @MARQAS.
  • New ep_sync_args filter. Props @felipeelia and @nickchomey.
  • “Full Sync” (Yes/No) to the Last Sync section in Status Report. Props @felipeelia.
  • New ep_user_register_feature and ep_feature_is_visible filters. Props @felipeelia.
  • Requests now have a new header called X-ElasticPress-Request-ID to help with debugging. Props @felipeelia.
  • Compatibility with 'orderby' => 'none' in WP_Query. Props @felipeelia.
  • Unit tests related to the ep_weighting_configuration_for_search filter. Props @felipeelia.
  • New Unit tests for the WooCoomerce feature. Props @burhandodhy and @felipeelia.
  • Description for the --network-wide flag in WP-CLI commands. Props @MARQAS.
  • New is_available() helper method in the Feature class. Props @burhandodhy.

Changed:

  • Indices of disabled features will be deleted during a full sync. Mappings of needed but non-existent indices will be added even during a regular sync. Props @felipeelia.
  • Reduced number of WooCommerce product queries automatically integrated with ElasticPress. Props @burhandodhy and @felipeelia.
  • The number of results per page in Instant Results now matches the site’s posts per page setting. Props @JakePT.
  • Under the hood improvements to the structure of Instant Results. Props @JakePT.
  • Apply the “Exclude from Search” filter directly on ES Query. Props @burhandodhy.
  • Avoid using Elasticsearch if query has an unsupported orderby clause. Props @burhandodhy.
  • E2e tests split into 2 groups to be executed in parallel. Props @iamchughmayank, @burhandodhy, and @felipeelia.
  • Filter command flags using get_flag_value(). Props @oscarssanchez and @felipeelia.
  • Code Standards are now applied to the test suite as well. Props @felipeelia.
  • Text displayed when a feature that requires a sync is about to be enabled. Props @felipeelia and @brandwaffle.

Removed:

  • Remove legacy filters woocommerce_layered_nav_query_post_ids, woocommerce_unfiltered_product_ids, and ep_wp_query_search_cached_posts. Props @burhandodhy.

Fixed:

  • API requests for Instant Results sent on page load before the modal has been opened. Props @JakePT.
  • Prevent search queries for coupons from using Elasticsearch. Props @burhandodhy.
  • Thumbnails are not removed from indexed WooCommerce Products when the attachments are deleted. Props @burhandodhy and @JakePT.
  • Auto sync posts associated with a child term when the term parent is changed. Props @MARQAS and @felipeelia.
  • Status Report page firing requests to ES twice. Props @felipeelia.
  • Sanitization of Meta Queries. Props @MARQAS.
  • Facets styles not enqueued more than once. Props @felipeelia and @MediaMaquina.
  • Duplicate terms listed in Instant Results facets. Props @felipeelia.
  • Not setting the post context when indexing a post. Props @tomjn.
  • Some utilitary methods in the Command class treated as WP-CLI Commands. Props @burhandodhy and @felipeelia.
  • Make the “Failed Queries” notice dismissible. Props @oscarssanchez and @felipeelia.
  • Undefined index 'elasticpress' in the Status Report page. Props @MARQAS.
  • Undefined array key 'displayCount' error for facet. Props @burhandodhy.
  • Warnings on the feature setup page. Props @burhandodhy.

Security:

  • Bumped http-cache-semantics from 4.1.0 to 4.1.1. Props @dependabot.
  • Bumped got from 9.6.0 to 11.8.5 and simple-bin-help from 1.7.7 to 1.8.0. Props @dependabot.
  • Bumped simple-git from 3.15.1 to 3.16.0. Props @dependabot.
  • Bumped json5 from 1.0.1 to 1.0.2. Props @dependabot.

4.4.1 – 2023-01-10

Note that starting from the ElasticPress 5.0.0 release the Users feature will be moved to the ElasticPress Labs plugin. The Terms and Comments features will remain in ElasticPress but will be available only if enabled via code.

This is a bug fix release.

Added:

Changed:

Removed:

  • Unnecessary remove_filters from the unit tests. Props @burhandodhy.

Fixed:

  • Sync is stopped if put mapping throws an error. Props @burhandodhy, @JakePT, and @felipeelia.
  • Layout issue in Instant Results that would occur with small result sets. Props @JakePT.
  • Issue where keyboard focus on a facet option was lost upon selection. Props @JakePT.
  • JS error on Status Report page. Props @burhandodhy and @felipeelia.
  • Hooks documentation reference. Props @burhandodhy.
  • 'current' as value for the 'sites' parameter. Props @burhandodhy, @oscarssanchez, and @anders-naslund.
  • Uncaught ArgumentCountError: Too few arguments to function WP_CLI::halt() message. Props @burhandodhy and @JakePT.
  • Queries with post_parent set to 0 not working correctly. Props @JiveDig.
  • Sync command exits without any error message if mapping fails. Props @burhandodhy and @felipeelia.
  • Evaluate the WP-CLI --pretty flag as real boolean. Props @oscarssanchez.
  • Remove deprecated command from the error message. Props @burhandodhy.
  • CLI command delete-index --network-wide throws error when EP is not network activated. Props @burhandodhy.
  • E2E tests for PHP 8. Props @burhandodhy.
  • Feature title issue on the report page and notices. Props @burhandodhy and @JakePT.
  • Autosuggest Site Health Info containing incorrect information unrelated to Autosuggest. Props @JakePT.
  • Styling of the Instant Results Facets field. Props @JakePT.

Security:

  • Bumped simple-git from 3.6.0 to 3.15.1. Props @dependabot.

4.4.0 – 2022-11-29

Note that starting from the ElasticPress 5.0.0 release the Users feature will be moved to the ElasticPress Labs plugin. The Terms and Comments features will remain in ElasticPress but will be available only if enabled via code.

ElasticPress 4.4.0 release highlights:

  • New Status Report page and failed queries logs (#3130, #3148, and #3136)
  • Instant Results template customization (#2959)
  • Facets by Meta available by default. Users should delete the 1-file plugin released with 4.3.0 (#3071)
  • New option to exclude posts from search (#3100)
  • Renamed some WP-CLI commands and added deprecation notices for the old versions (see table below)

Added:

  • New Status Report page. Props @felipeelia, @JakePT, @tott, and @brandwaffle.
  • New Query Logger to display admin notices about failed queries and the list in the new Status Report page. Props @felipeelia, @JakePT, and @brandwaffle.
  • New option to exclude posts from search. Props @burhandodhy, @felipeelia, and @JakePT.
  • Search Comments block. Replaces the Comments widget in the block editor. Props @JakePT and @felipeelia.
  • [Instant Results] Notice when ElasticPress is network activated warning that Instant Results will not work on all sites without additional steps. Props @JakePT.
  • Extra debugging information in the browser console when syncing fails and more useful error messages with a troubleshooting URL. Props @JakePT.
  • New elasticpress.InstantResults.Result JavaScript filter for filtering the component used for Instant Results search results. Props @JakePT.
  • New window.epInstantResults.openModal() method for developers to manually open Instant Results. Props @JakePT.
  • Support for stock_status filter on the WooCommerce Admin Product List. Props @felipeelia and @jakgsl.
  • Option to toggle the term count in Instant results. Props @MARQAS and @JakePT.
  • New ep_autosuggest_query_args filter, to change WP Query args of the autosuggest query template. Props @felipeelia.
  • New ep_post_filters filter and refactor of the Post::format_args method. Props @felipeelia.
  • New get_index_settings() method to retrieve index settings. Props @rebeccahum.
  • New ep_woocommerce_default_supported_post_types and ep_woocommerce_admin_searchable_post_types filters. Props @ecaron.
  • Add test factories for Post, User and Term. Props @burhandodhy.
  • Unit tests to check access to custom results endpoints. Props @burhandodhy.
  • New unit tests for the user feature. Props @burhandodhy.

Changed:

  • Facets by Meta available by default. Props @burhandodhy.
  • If an Elasticsearch index is missing, force a full sync. Props @MARQAS, @felipeelia, and @JakePT.
  • ElasticPress.io clients only need to enter the Subscription ID now. Props @MARQAS and @felipeelia.
  • Renderer::order_by_selected visibility. Props @burhandodhy.
  • After editing a term, only sync posts if the term is associated with fewer posts than the Content Items per Index Cycle number. Props @felipeelia, @cmcandrew, @DenisFlorin, and @burhandodhy.
  • The meta_query clause when using the meta_key parameter. Props @felipeelia, @MARQAS, and @Greygooo.
  • Facets filters are not applied in the WP Query level anymore. Props @felipeelia and @burhandodhy.
  • To be compatible with WordPress 6.1, when passing 'all' as the fields parameter of WP_User_Query only user IDs will be returned. Props @felipeelia and @burhandodhy.
  • update_term_meta_cache parameter set as false while getting terms …