Description
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: “I want a cotton, woman’s t-shirt, for under $15 that’s in stock.” Faceted product browsing strains servers and increases load times. Your buyers can find the perfect product quickly, and buy it quickly.
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.
Facets: Add controls to your website to filter content by one or more taxonomies.
Users: Improve user search relevancy and query performance.
Comments: Indexes your comments and provides a widget with type-ahead search functionality. It works with WooCommerce product reviews out-of-the-box.
Screenshots
Blocks
This plugin provides 3 blocks.
- Related Posts (ElasticPress)
- Facet by Meta (ElasticPress)
- Facet by Taxonomy (ElasticPress)
Installation
- First, you will need to properly install and configure Elasticsearch.
- Activate the plugin in WordPress.
- In the ElasticPress settings page, input your Elasticsearch host.
- Sync your content by clicking the sync icon.
- Enjoy!
FAQ
-
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.
-
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.
Reviews
Contributors & Developers
“ElasticPress” is open source software. The following people have contributed to this plugin.
Contributors“ElasticPress” has been translated into 1 locale. 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.
Changelog
4.3.1 – 2022-09-27
This release fixes some bugs and also adds some new filters.
Added:
- New
ep_facet_taxonomy_terms
filter to filter the Facet terms. Props @burhandodhy and @felipeelia. - Added
ep.Autosuggest.itemHTML
,ep.Autosuggest.listHTML
,ep.Autosuggest.query
, andep.Autosuggest.element
JavaScript hooks to Autosuggest and migrated filter functions to hook callbacks for backwards compatibility. Props @JakePT. - E2E tests for the Comments Feature. Props @burhandodhy.
- E2E tests for the Instant Results feature. Props @MARQAS and @felipeelia.
- More E2E tests for the WooCommerce Feature. Props @burhandodhy.
Changed:
- REST API endpoints used for managing custom results are no longer publicly accessible. Props @JakePT and @PypWalters.
Fixed:
- WooCommerce data privacy eraser query deleting all orders if EP is enabled for admin and Ajax requests. Props @sun and @bogdanarizancu.
- Facets removing WooCommerce sorting. Props @burhandodhy and @felipeelia.
- Facets triggering the ElasticPress integration in feed pages. Props @felipeelia and @rafaucau.
- Taxonomy Facet tree issue when child category is selected. Props @burhandodhy.
- Term search in the admin panel for non-public taxonomies returning nothing. Props @burhandodhy.
- Clicking a Related Posts link while in the editor no longer follows the link. Props @JakePT.
- Visual alignment of elements in the Settings page. Props @MARQAS and @felipeelia.
- Intermittent tests failures. Props @burhandodhy.
4.3.0 – 2022-08-31
ElasticPress 4.3.0 fixes some bugs and introduces some new and exciting changes.
WooCommerce Product Variations SKUs are now a publicly searchable field. Site administrators wanting to allow users to search for their product variations SKUs can enable it in the Search Fields & Weighting Dashboard, under Products. If a user searches for a variation SKU, the parent product will be displayed in the search results.
The last ElasticPress sync information is now available in WordPress’s Site Health. If you want to check information like the date of the last full sync, time spent, number of indexed content, or errors go to Tools -> Site Health, open the Info tab and click on ElasticPress – Last Sync.
Facets received some further improvements in this version. In addition to some refactoring related to WordPress Block Editor, ElasticPress 4.3.0 ships with an experimental version of a Facet By Meta block. With that, users will be able to filter content based on post meta fields. If you want to try it, download and activate this plugin. Do you have an idea of an enhancement? Search in our facets
label in GitHub and if it is not there yet, feel free to open a new issue. We would love to hear new ideas!
Added:
- Search products by their variations’ SKUs. Props @burhandodhy.
- New block to Facet by Meta fields. Props @felipeelia and @tott.
- Display last sync info in site health screen. Props @oscarssanchez and @felipeelia.
- New
epwr_decay_field
filter to set the decay field for date weighting. Props @MARQAS and @HypeAU. - Autosuggest: filter the autosuggest ElasticSearch query by defining a
window.epAutosuggestQueryFilter()
function in JavaScript. Props @johnwatkins0. - Autosuggest: filter the HTML of all results by defining a
window.epAutosuggestListItemsHTMLFilter()
function in JavaScript. Props @JakePT. - Autosuggest: filter the container element by defining a
window.epAutosuggestElementFilter()
function in JavaScript. Props @JakePT. - Documentation for Autosuggest JavaScript filters. Props @JakePT and @brandwaffle.
- Documentation for styling Instant Results. Props @JakePT.
- Use
wp_cache_flush_group()
for autosuggest when available. Props @tillkruss. - The public search API is automatically deactivated when the Instant Results feature is deactivated. Props @JakePT.
- Support for transforming instances of the legacy Facet and Related Posts widgets into blocks. Props @JakePT.
- Use
wp_cache_flush_runtime()
when available. Props @tillkruss, @felipeelia, and @tott. - E2E tests for the Custom Results feature. Props @burhandodhy and @felipeelia.
- E2E tests for the Terms feature. Props @burhandodhy and @felipeelia.
Changed:
- Improved performance in
get_term_tree()
. Props @rebeccahum. - Migrated Related Posts block definitions to
block.json
. Props @JakePT. - Total comment count made during sync process to be a proper count call. Props @felipeelia and @bsabalaskey.
- Search algorithms moved to separate classes. Props @felipeelia.
- The legacy Facet and Related Posts widgets are now hidden when using the block editor. Props @JakePT.
- Facets are now divided by types and received their own class. Props @felipeelia.
- PHP compatibility check merged to regular lint. Props @felipeelia.
- E2e tests to run WP-CLI commands in an existent docker container. Props @felipeelia.
- Increased E2e tests coverage for WP-CLI commands. Props @burhandodhy and @felipeelia.
Deprecated:
- The following filters were deprecated. They will still work but add a notice in the error logs.
- Deprecated
ep_formatted_args_query
in favour ofep_post_formatted_args_query
- Deprecated
ep_match_phrase_boost
in favour ofep_post_match_phrase_boost
- Deprecated
ep_match_boost
in favour ofep_post_match_boost
- Deprecated
ep_fuzziness_arg
in favour ofep_post_fuzziness_arg
- Deprecated
ep_match_fuzziness
in favour ofep_post_match_fuzziness
- Deprecated
ep_match_cross_fields_boost
in favour ofep_post_match_cross_fields_boost
- Deprecated
Fixed:
- Error returned by the
recreate-network-alias
CLI command when called on single site. Props @burhandodhy. - Term objects in
format_hits_as_terms
to useWP_Term
instead ofstdClass
to match WordPress expectations. Props @jonathanstegall. - Post reindex on meta deletion. Props @pschoffer.
- Autosaved drafts not showing up in draft post listing when using the Protected Content feature. Props @rebeccahum and @felipeelia.
- Display fatal error messages in the Sync Dashboard. Props @felipeelia and @orasik.
- An issue where syncing after skipping setup, instead of deleting and syncing, resulted in an error. Props @JakePT.
- Stuck progress bar when no post is found. Props @felipeelia and @burhandodhy.
- Infinite loop during sync if the site has just password protected posts and no other content. Props @felipeelia and @burhandodhy.
- JS error on Custom Results edit page. Props @burhandodhy.
- Horizontal scroll in ElasticPress Quick Setup Screen. Props @MARQAS and @JakePT.
- Allows to replace
post_excerpt
with highlighted results from within AJAX and other integrated contexts. Props @nickchomey. - Empty results for taxonomy terms that have non ASCII characters. Props @alaa-alshamy.
- Format of highlight tags quotation mark. Props @nickchomey.
- Intermittent error with sticky posts in the tests suite. Props @felipeelia.
Security:
- Bumped
terser
from 5.12.0 to 5.14.2. Props @dependabot. - Bumped
@wordpress/env
from 4.5.0 to 5.0.0. Props @felipeelia.
4.2.2 – 2022-07-14
This is a bug fix release.
Added:
- New
ep_enable_do_weighting
filter and re-factor with new functionapply_weighting
. Props @rebeccahum and @felipeelia. - New
ep_default_analyzer_char_filters
filter. Props @rebeccahum. - E2E test to prevent saving feature settings during a sync. Props @burhandodhy.
- Full compatibility with Composer v2. Props @felipeelia.
Changed:
update_index_settings()
now accounts for the index closing action timing out and re-opens index if closed. Props @rebeccahum.
Fixed:
- Wrong post types being displayed on the homepage while having the Facets feature enabled. Props @felipeelia and @oscarssanchez.
- Wrong notice about unsupported server software. Props @felipeelia.
Security:
- Bumped
moment
from 2.29.2 to 2.29.4. Props @dependabot.
4.2.1 – 2022-06-28
This is a bug fix release.
Added:
- Server type/software detection and warning. Props @felipeelia and @brandwaffle.
- Coverage of E2E tests for the activate-feature command. Props @burhandodhy.
Changed:
- Sync button
title
attribute. Props @burhandodhy and @JakePT. npm run build:zip
to usegit archive
. Props @felipeelia.
Fixed:
- Fatal error related to WP-CLI timers on long-running syncs. Props @felipeelia and @przestrzal.
- Uncaught TypeError on the Settings Page. Props @burhandodhy.
- Meta values that are not dates converted into date format. Props @burhandodhy, @oscarssanchez, @tott, and @felipeelia.
- An issue where feature settings could be saved during a sync. Props @JakePT.
- Admin menu bar items are not clickable when instant results popup modal is activated. Props @MARQAS and @JakePT.
- Facet block wrongly available in the post editor. Props @oscarssanchez.
- Show Facet widgets on taxonomy archives. Props @burhandodhy and @felipeelia.
- Meta queries with ‘exists’ as compare operator and empty meta values handling. Props @burhandodhy.
- Sync interruption message always mentioning ElasticPress.io. Props @burhandodhy and @JakePT.
- An issue where the Related Posts block would display the wrong posts in the preview when added inside a Query Loop block. Props @JakePT.
- E2e tests for the Facets feature. Props @felipeelia.
- Intermittent error on GitHub Actions using the latest node 16 version. Props @felipeelia.
4.2.0 – 2022-05-26
ElasticPress 4.2.0 fixes some bugs and introduces some new and exciting changes.
The sync functionality had its JavaScript refactored. Timeouts, memory limits, and general errors are now properly handled and do not make the sync get stuck when performed via the WP-CLI index
command. There is also a new get-last-sync
WP-CLI command to check the errors and numbers from the last sync.
We’ve improved the admin search experience for sites using both WooCommerce and Protected Content. Previously, WooCommerce was processing that screen with two different queries, and EP was used only in one of them. Now, it will be only one query, fully handled by ElasticPress. Users wanting to keep the previous behavior can do so by adding add_filter( 'ep_woocommerce_integrate_admin_products_list', '__return_false' );
to their website’s codebase.
Facets are now available through a WordPress block. If you are using the Full Site Editing feature, you can now add ElasticPress Facets to your theme with just a few clicks! This block has been introduced with a simplified user interface to enable compatibility with Full Site Editing and will continue to be iterated and improved in future versions of the plugin.
Added:
- E2e tests for the Facets feature. Props @felipeelia.
$post_args
and$post_id
to theep_pc_skip_post_content_cleanup
filter. Props @felipeelia and @ecaron.- New filter
ep_integrate_search_queries
. Props @rebeccahum and @felipeelia. - New
get-last-sync
WP-CLI command. Props @felipeelia. - Facet block (previously only available as a widget.) Props @felipeelia.
- New
_variations_skus
field to WooCommerce products. Props @felipeelia, @kallehauge, and @lukaspawlik. - Support for ordering Users by
user_registered
and lowercaseid
. Props @felipeelia and @burhandodhy. - New filter
ep_sync_number_of_errors_stored
. Props @felipeelia, @tott and @JakePT.
Changed:
- Facets widgets rendered by a separate class. Props @felipeelia.
- Deprecated
ElasticPress\Feature\Facets\Widget::get_facet_term_html()
in favor ofElasticPress\Feature\Facets\Renderer::get_facet_term_html()
. Props @felipeelia. - Log errors and remove indexing status on failed syncs. Props @felipeelia.
- Refactored Sync page JavaScript. Props @JakePT.
- Updated admin scripts to use WordPress’s version of React. Props @JakePT.
- WooCommerce products list in the Dashboard now properly leverages ElasticPress. Props @felipeelia.
- Removed Instant Results’ dependency on
@wordpress/components
and@wordpress/date
. Props @JakePT and @felipeelia. - (Protected Content) Password-protected posts are only hidden on searches. Props @felipeelia, @JakePT, and @burhandodhy.
- The plugin is now available via Composer without any additional steps required. Props @felipeelia, @jeffpaul, and @johnbillion.
Fixed:
- WP-CLI parameters documentation. Props @felipeelia.
- Full indices removal after e2e tests. Props @felipeelia and @dustinrue.
- Usage of the
$return
parameter inFeature\RelatedPosts::find_related()
. Props @felipeelia and @altendorfme. - Link to API Functions under the Related Posts feature -> Learn more. Props @felipeelia and @burhandodhy.
- Sync of WooCommerce Orders fields when WooCommerce and Protected Content features are enabled. Props @felipeelia and @ecaron.
- An issue where selecting no features during install would just cause the install page to reload without any feedback. Props @JakePT and @tlovett1.
- An issue where deselecting a feature during install would not stop that feature from being activated. Props @JakePT.
- Add the missing text domain for the Related Posts block. Props @burhandodhy.
- Console error when hitting enter on search inputs with autosuggest. Props @burhandodhy, @felipeelia, and @MarijnvSprundel.
- An issue where attribute selectors could not be used for the Autosuggest Selector. Props @JakePT and @oscarssanchez.
- “Time elapsed” and “Total time elapsed” in WP-CLI index command. Props @felipeelia and @archon810.
- Sync process with skipped objects. Props @juliecampbell and @felipeelia.
- Typo in the sync page. Props @JakePT and @davidegreenwald.
- WP-CLI index command without the
--network-wide
only syncs the main site. Props @felipeelia and @colegeissinger. - WP-CLI commands
get-mapping
,get-indexes
,status
, andstats
only uses all sites’ indices name when network activated. Props @felipeelia and @colegeissinger. - A bug where URL search parameters could be cleared when using Instant Results. Props @JakePT and @yashumitsu.
- Undefined index notice in Facets renderer. Props @felipeelia and @burhandodhy.
- Prevent an unnecessary call when the ES server is not set yet. Props @felipeelia and @burhandodhy.
- An incompatibility with the way WP 6.0 handles WP_User_Query using fields. Props @felipeelia.
Security:
- Bumped
moment
from 2.29.1 to 2.29.2. Props @dependabot. - Bumped
@wordpress/env
from 4.4.0 to 4.5.0. Props @felipeelia.
4.1.0 – 2022-04-05
Added:
- Utility command to create zip packages:
npm run build:zip
. Props @felipeelia. - E2e tests for the Synonyms feature. Props @felipeelia.
generate_mapping()
to post and comment indexables. Props @rebeccahum.get_related_query()
to theRelatedPosts
class. Props @ayebare.- New
--pretty
flag to the WP-CLI commands that output a JSON. Props @felipeelia and @oscarssanchez. - Support for an array of aggregations in the
aggs
parameter ofWP_Query
. Props @felipeelia and @oscarssanchez.
Changed:
- Refactored remaining admin scripts to remove jQuery as a dependency. Props @JakePT.
- Generate Instant Results’ search template as an anonymous user by default. Props @JakePT.
Fixed:
- PHP warning Trying to access array offset on value of type int in
get_index_names()
. Props @sun. - Searches by WooCommerce Order ID. Props @felipeelia.
- Display and error message if syncing failed due to invalid JSON response from the server. Props @dsawardekar.
- Better compatibility with PHP 8.1 by replacing the deprecated
FILTER_SANITIZE_STRING
. Props @sjinks. get_term_tree()
no longer infinite loops when parent ID is non-existent. Props @rebeccahum.- User search results include users who do not exist in the current site. Props @tfrommen and @felipeelia.
- Pagination while syncing Indexables other than Posts. Props @felipeelia and @derringer.
- Handle the output of an array of messages in sync processes. Props @felipeelia.
- Truthy values for the
'enabled'
field’s attribute while using theep_weighting_configuration_for_search
filter. Props @felipeelia and @moritzlang. - “Learn More” link on the Sync Page. Props @felipeelia, @JakePT, and @brandwaffle.
- Icons alignment in the WP Dashboard. Props @jakemgold, @felipeelia, @brandwaffle, and @tlovett1.
Security:
- Bumped
node-forge
from 1.2.1 to 1.3.0. Props @dependabot. - Bumped
@wordpress/env
from 4.2.2 to 4.4.0, andminimist
from 1.2.5 to 1.2.6. Props @felipeelia.
4.0.1 – 2022-03-16
This is a security release affecting users running ElasticPress 4.0 with both the WooCommerce and Protected Content Features activated. Please update to the latest version of ElasticPress if the WooCommerce and Protected Content features are activated and you’re using ElasticPress 4.0.
Security:
- Orders belonging to all users loaded in the My Account WooCommerce page. Props @tomburtless and @oscarssanchez.
4.0.0 – 2022-03-08
ElasticPress 4.0 contains some important changes. Make sure to read these highlights before upgrading:
- This version requires a full reindex.
- It introduces a new search algorithm that may change the search results displayed on your site.
- A new feature called “Instant Results” is available. As it requires a full reindex, if you plan to use it, we recommend you enable it first and reindex only once.
- Users upgrading from Beta 1 need to re-save the Instant Results feature settings.
-
New minimum versions are:
Min
MaxElasticsearch
5.2
7.10WordPress
5.6+
latestPHP
7.0+
latest
Note that ElasticPress 4.0.0 release removes built assets from the develop
branch, replaced master
with trunk
, added a ZIP with the plugin and its built assets in the GitHub Releases page, and included a build script should you want to build assets from a branch. As such, please plan to update any references you have from master
to trunk
or to GitHub Releases depending on whether you require built assets or not. (See changes in #2622.)
The Facets widget is not currently available within Full Site Editing mode.
Added:
- Instant Results. Props @JakePT, @felipeelia, and Pratheep Chandrasekhar.
- New default search algorithm prioritizing exact matches, matches in the same field, then matches across different fields. Props @brandwaffle and @felipeelia.
- Filter
ep_load_search_weighting
to disable search weighting engine. Props @rebeccahum and @felipeelia. - Post types to facet labels when needed to to differentiate facets with duplicate labels. Props @JakePT and @felipeelia.
- Support for search form post type fields to Instant Results. Props @JakePT.
- Alternative way to count total posts on larger DBs during indexing. Props @rebeccahum and @felipeelia.
- Do not count posts in
get_total_objects_for_query_from_db()
if any object limit IDs are passed in. Props @rebeccahum. - Show WP-CLI progress on the new Sync page. Props @Rahmon and @felipeelia.
- Display results counts for facet options in Instant Results. Props @JakePT, @felipeelia.
- ARIA attributes to Facet widget links to improve accessibility. Props @JakePT.
- Support for shareable URLs to Instant Results. Props @JakePT and @felipeelia.
- Dynamic bulk requests limits. Instead of sending only one request per document batch, send several adjusting their sizes based on the Elasticsearch response. Props @felipeelia, @dinhtungdu, @brandwaffle, and @Rahmon.
- New step in the installation process: users can now select features before the initial sync. Props @felipeelia, @JakePT, Jonathan Netek, and @brandwaffle.
Changed:
- Sync page and code responsible for indexing. Props @helen, @felipeelia, @Rahmon, @mckdemps, @tott, and Pratheep Chandrasekhar.
- When Protected Content is enabled, ElasticPress will have a more similar behavior to WordPress core but the post content and meta will not be indexed (the new
ep_pc_skip_post_content_cleanup
can be used to skip that removal.) Props @rebeccahum, @oscarssanchez, @felipeelia, @dinhtungdu, @cristianuibar, and @allan23, @mallorydxw. - Bump minimum required versions of Elasticsearch from 5.0 to 5.2 and WordPress from 3.7.1 to 5.6. Props @felipeelia.
- Bump minimum required PHP version from 5.6 to 7.0. Props @felipeelia, @ActuallyConnor, and @brandwaffle.
- Internationalize start and end datetimes of sync. Props @Rahmon and @felipeelia.
ep_integrate
argument in WP_Query to accept0
and'false'
as valid negative values. Props @oscarssanchez, @Rahmon, and @felipeelia.- To comply with modern WooCommerce behavior, ElasticPress no longer changes the
orderby
parameter. Props @felipeelia and @beazuadmin. - Query parameters for facets to start with
ep_filter
, changeable via the newep_facet_filter_name
filter. Props @oscarssanchez, @felipeelia, and @slaxxarn. - Output of sync processes using offset to display the number of documents skipped. Props @oscarssanchez, @felipeelia, @cbratschi, and @brandwaffle.
- Switched from WP Acceptance to Cypress for end to end tests. Props @felipeelia, @Sidsector9, and @dustinrue.
- CSS vars usage in the new Sync page. Props @Rahmon, @JakePT, @mehidi258, and @felipeelia.
- Features screen: improved accessibility and jQuery dependency removal. Props @JakePT.
- Taxonomy parameters now reflect the WordPress parsed
tax_query
value. Props @felipeelia and @sathyapulse. - Features order in the Features screen. Props @felipeelia and @brandwaffle.
- WooCommerce’s
search
parameter also to be used by ElasticPress queries. Props @felipeelia, @dianfishekqi, and @oscarssanchez. - Posts are now reindexed when a new term is associated with them and also when an associated term is updated or deleted. Props @nickdaugherty, @felipeelia, @brandon-m-skinner, @mckdemps, @rebeccahum.
- Complement to the resync message related to Instant Results. Props @felipeelia and @brandwaffle.
- Updated
jsdoc
from 3.6.9 to 3.6.10 and fixed the documentation of theep_thumbnail_image_size
filter. Props @felipeelia. - Instant Results: type and initial value of search template and move save to the end of sync. Props @felipeelia and @oscarssanchez.
Removed:
- Built assets (minified JavaScript and CSS files) from the repository. Props @felipeelia and @jeffpaul.
- Duplicate
case 'description':
fromElasticPress\Indexable\Term\Term::parse_orderby
. Props @sjinks.
Fixed:
- CSS issues on Features page. Props @JakePT.
- AJAX URL on subsites. Props @Rahmon.
- PHP Notice while monitoring a WP-CLI sync in the dashboard. Props @felipeelia and @ParhamG.
- Sync page when WooCommerce’s “hide out of stock items” and Instant Results are both enabled. Props @felipeelia.
- PHPUnit Tests and WordPress 5.9 compatibility. Props @felipeelia.
- WooCommerce Orders Search when searching for an order ID. Props @felipeelia.
- Code standards. Props @felipeelia.
- Posts insertion and deletion in the same thread. Props @felipeelia and @tcrsavage.
- Invalid values in
tax_query
terms resulting in a query failure. Props @rinatkhaziev and @felipeelia. - New Sync Page to display a message when an indexing is stopped by the WP-CLI
stop-indexing
command. Props @Rahmon, @felipeelia, and @brandwaffle. - Nested queries are no longer deleted. Props @oscarssanchez and @christianc1.
- Type hints for
epwr_decay
andepwr_weight
hooks. Props @edwinsiebel. - Errors count in the new Sync page. Props @felipeelia.
- Multisite could index posts from a disabled indexing site. Props @oscarssanchez, @chrisvanpatten, @felipeelia.
- New sync code and the
upper-limit-object-id
andlower-limit-object-id
parameters in WP-CLI command. Props @felipeelia. - Sync link on index health page. Props @JakePT.
- Logic checking if it is a full sync and if search should go or not through ElasticPress. Props @felipeelia and @JakePT.
Security:
- Use most recent external GitHub Actions versions. Props @felipeelia and @qazaqstan2025.
- Updated
10up-toolkit
from 1.0.13 to 3.0.1,jsdoc
from 3.6.7 to 3.6.9,terser-webpack-plugin
from 5.2.4 to 5.3.0,@wordpress/env
from 4.1.1 to 4.2.2, andpromise-polyfill
from 8.2.0 to 8.2.1. Props @felipeelia. - Bumped
follow-redirects
from 1.14.7 to 1.14.9. Props @dependabot.
3.6.6 – 2021-12-20
ElasticPress 4.0 Beta 1 is now available for non-production testing.
Note that the upcoming ElasticPress 4.0.0 release will remove built assets from the develop
branch, will replace master
with trunk
, will add a zip with the plugin and its built assets in the GitHub release page, and will include a build script should you want to build assets from a branch. As such, please plan to update any references you have from master
to trunk
or to GitHub releases depending on whether you require built assets or not.
Supported versions changes planned for ElasticPress 4.0.0:
- Elasticsearch: from 5.0 – 7.9 to 5.2 – 7.10.
- WordPress: from 3.7.1+ to 5.6+.
- PHP: from 5.6+ to 7.0+.
Added:
- Ensure array query parameters do not contain empty items. Props @roborourke.
- WP-CLI
request
subcommand. Props @joehoyle and @felipeelia.
Changed:
- Enabling features that require a reindex will now ask for confirmation. Props @JakePT, @felipeelia, @Rahmon, @columbian-chris, and @brandwaffle.
Fixed:
- Broken search pagination on hierarchical post types. Props @tfrommen.
- Synonyms erased when syncing via WP-CLI. Props @felipeelia and @oscarssanchez.
- Deleting a metadata without passing an object id now updates all associated posts. Props @oscarssanchez, @felipeelia, and @Shrimpstronaut.
- Not indexable sites added to indexes list in WP-CLI commands. Props @oscarssanchez and @felipeelia.
3.6.5 – 2021-11-30
Note that the upcoming ElasticPress 4.0.0 release will remove built assets from the develop
branch, will replace master
with trunk
, will add a zip with the plugin and its built assets in the GitHub release page, and will include a build script should you want to build assets from a branch. As such, please plan to update any references you have from master
to trunk
or to GitHub releases depending on whether you require built assets or not.
Supported versions changes planned for ElasticPress 4.0.0:
- Elasticsearch: from 5.0 – 7.9 to 5.2 – 7.10.
- WordPress: from 3.7.1+ to 5.6+.
- PHP: from 5.6+ to 7.0+.
Added:
- Docs: Link to the support page in README.md. Props @brandwaffle.
- New
ep_weighting_default_enabled_taxonomies
filter. Props @felipeelia and @tott. $blog_id
and$indexable_slug
parameters to theep_keep_index
filter. Props @felipeelia and @brandwaffle.
Changed:
- Add
$type
parameter toep_do_intercept_request
filter. Props @rebeccahum and @felipeelia. - Cache the detected Posts mapping version, avoiding
get_mapping
calls in all admin requests. Props @felipeelia. - Docs: Required ES and WP versions planned for ElasticPress 4.0.0. Props @felipeelia.
- The
admin.min.js
file was split innotice.min.js
andweighting.min.js
, being loaded accordingly. Props @felipeelia and @barryceelen.
Fixed:
- Force fetching
ep_wpcli_sync_interrupted
transient from remote to allow for more reliable remote interruption. Props @rinatkhaziev and @rebeccahum. - Duplicate orderby statement in Users query. Props @brettshumaker, @pschoffer, and @rebeccahum.
- When using offset and default maximum result window value for size, subtract offset from size. Props @rebeccahum.
- Order for Custom Search Results in autosuggest. Props @felipeelia and @johnwatkins0.
- WP-CLI stats and status to output all indices related to ElasticPress. Props @felipeelia.
- Tests: Ensure that Posts related queries use ElasticPress. Props @Rahmon.
- Tests: PHPUnit and yoast/phpunit-polyfills. Props @felipeelia.
Security:
- Bumped
path-parse
from 1.0.6 to 1.0.7. Props @dependabot. - Bumped
10up-toolkit
from 1.0.12 to 1.0.13. Props @felipeelia.
3.6.4 – 2021-10-26
Note that the upcoming ElasticPress 4.0.0 release will remove built assets from the develop
branch, will replace master
with trunk
, ~~will build a stable release version including built assets into a stable
branch,~~ will add a zip with the plugin and its built assets in the GitHub release page, and will include a build script should you want to build assets from a branch. As such, please plan to update any references you have from master
to ~~either stable
or~~ trunk
or to GitHub releases depending on whether you require built assets or not.
Supported versions changes planned for ElasticPress 4.0.0:
- Elasticsearch: from 5.0 – 7.9 to 5.2 – 7.10.
- WordPress: from 3.7.1+ to 5.6+.
- PHP: from 5.6+ to 7.0+.
Added:
- WP-CLI: New
get-mapping
command. Props @tfrommen, @felipeelia, and @Rahmon. - New filters:
ep_query_request_args
andep_pre_request_args
. Props @felipeelia. - Support for Autosuggest to dynamically inserted search inputs. Props @JakePT, @rdimascio, @brandwaffle, and @felipeelia.
Changed:
- Automatically generated WP-CLI docs. Props @felipeelia.
- Verification of active features requirement. Props @Rahmon, @felipeelia, and @WPprodigy.
ewp_word_delimiter
base filter: changed fromword_delimiter
toword_delimiter_graph
. Props @pschoffer, @Rahmon and @yolih.- Terms search query in admin will not be fuzzy. Props @rebeccahum.
Fixed:
- Elapsed time beyond 1000 seconds in WP-CLI index command. Props @felipeelia and @dustinrue.
- Layout of Index Health totals on small displays. Props @JakePT and @oscarssanchez.
- Deprecated URL for multiple documents get from ElasticSearch. Props @pschoffer.
- Add new lines and edit terms in the Advanced Synonym Editor. Props @JakePT and @johnwatkins0.
- Terms: Avoid falling back to MySQL when results are empty. Props @felipeelia.
- Terms: Usage of several parameters for searching and ordering. Props @felipeelia and @Rahmon.
- Attachment indexing on Elasticsearch 7. Props @Rahmon.
- Tests: Ensure that Documents related queries use ElasticPress. Props @Rahmon.
- Tests: Ensure that WooCommerce related queries use ElasticPress. Props @Rahmon and @felipeelia.
- Tests: Ensure that Comments related queries use ElasticPress. Props @Rahmon and @felipeelia.
- Tests: Ensure that Multisite related queries use ElasticPress. Props @Rahmon and @felipeelia.
- Tests: Ensure that Terms related queries use ElasticPress. Props @felipeelia.
3.6.3 – 2021-09-29
Note that the upcoming ElasticPress 3.7.0 release will remove built assets from the develop
branch, will replace master
with trunk
, will build a stable release version including built assets into a stable
branch, and will include a build script should you want to build assets from a branch. As such, please plan to update any references you have from master
to either stable
or trunk
depending on whether you require built assets or not.
Official PHP support is currently 5.6+. Minimum PHP version for ElasticPress 3.7.0 will be 7.0+.
Added:
- New
ep_facet_widget_term_html
andep_facet_widget_term_label
filters to the Facet widget for filtering the HTML and label of individual facet terms. Props @JakePT, @Rahmon, and @felipeelia. - New
ep_set_sort
filter for changing thesort
clause of the ES query iforderby
is not set in WP_Query. Props @rebeccahum and @felipeelia. - WP-CLI documentation for some commands and parameters. Props @felipeelia.
Changed:
- In addition to post titles, now autosuggest also partially matches taxonomy terms. Props @felipeelia and @Rahmon.
- Date parsing change to avoid
E_WARNING
s. Props @pschoffer.
Fixed:
- Comments created by anonymous users (but approved by default) are now indexed. Props @tomjn and @Rahmon.
- Deleted terms are now properly removed from the Elasticsearch index. Props @felipeelia.
- Children of deleted terms are now properly removed from the Elasticsearch index. Props @pschoffer.
- Post tag duplicated in the Elasticsearch query. Props @oscarssanchez, @Rahmon, and @felipeelia.
- Infinite loading state of ElasticPress Related Posts block in the Widgets Edit Screen. Props @felipeelia.
- Return of
Search::integrate_search_queries()
whenis_integrated_request
. Props @adiloztaser. - Mapping determination based on existing info. Props @felipeelia.
WP_Term_Query
andparent = 0
. Props @felipeelia and @juansanchezfernandes.- WP Acceptance Tests. Props @felipeelia.
- Typos in the output of some WP-CLI Commands. Props @rebeccahum.
Security:
- Bumped
10up-toolkit
from 1.0.11 to 1.0.12,terser-webpack-plugin
from 5.1.4 to 5.2.4,@wordpress/api-fetch
from 3.21.5 to 3.23.1, and@wordpress/i18n
from 3.18.0 to 3.20.0. Props @felipeelia.
3.6.2 – 2021-08-26
Note that the upcoming ElasticPress 3.7.0 release will remove built assets from the develop
branch, will replace master
with trunk
, will build a stable release version including built assets into a stable
branch, and will include a build script should you want to build assets from a branch. As such, please plan to update any references you have from master
to either stable
or trunk
depending on whether you require built assets or not.
This version bumps official PHP support from 5.3+ to 5.6+. Minimum PHP version for ElasticPress 3.7.0 will be 7.0+.
Added:
- GitHub Action to test compatibility with different PHP versions. Props @felipeelia.
- Validate mapping currently in index against expected version. Props @tott, @tlovett1, @asharirfan, @oscarssanchez, and @felipeelia.
ep_default_analyzer_filters
filter to adjust default analyzer filters. Props @pschoffer and @felipeelia.title
andaria-labels
attributes to each icon hyperlink in the header toolbar. Props @claytoncollie and @felipeelia.Utils\is_integrated_request()
function to centralize checks for admin, AJAX, and REST API requests. Props @JakePT, @felipeelia, @brandwaffle, @moritzlang, and @lkraav.
Changed:
- Use
10up-toolkit
to build assets. Props @Rahmon, @felipeelia, and @nicholasio. - Official PHP supported version bumped to 5.6. Props @felipeelia.
- Lint React rules using
10up/eslint-config/react
. Props @Rahmon. - For ES 7.0+ mappings, change
edgeNGram
toedge_ngram
. Props @pschoffer and @rinatkhaziev.
Removed:
- Remove duplicate category_name, cat and tag_id from ES query when tax_query set. Props @rebeccahum and @oscarssanchez.
- Remove unused
path
fromdynamic_templates
. Props @pschoffer.
Fixed:
- Remove data from Elasticsearch on a multisite network when a site is archived, deleted or marked as spam. Props @dustinrue and @felipeelia.
stats
andstatus
commands in a multisite scenario. Props @Rahmon, @felipeelia, and @dustinrue.- Multiple words synonyms. Props @scooterlord, @jonasstrandqvist, and @felipeelia.
- Category slug used when doing cat Tax Query with ID. Props @oscarssanchez and @karols0.
- Restore current blog when the_post triggers outside the loop in multisite environment and the whole network is searched if the first result is from another blog. Props @gonzomir and @felipeelia.
- Prevents a post from being attempted to delete twice. Props @pauarge.
- Indexing button on Health screen. Props @Rahmon and @oscarssanchez.
- WP Acceptance tests and Page Crashed errors. Props @felipeelia and @jeffpaul.
- Facets: Children of selected terms ordered by count. Props @oscarssanchez, @Rahmon, and @felipeelia.
Security:
- Bumps
path-parse
from 1.0.6 to 1.0.7. Props @dependabot.
3.6.1 – 2021-07-15
Note that the upcoming ElasticPress 3.7.0 release will remove built assets from the develop
branch, will replace master
with trunk
, will build a stable release version including built assets into a stable
branch, and will include a build script should you want to build assets from a branch. As such, please plan to update any references you have from master
to either stable
or trunk
depending on whether you require built assets or not.
This version requires a full reindex. The new facet
field introduced in 3.6.0
requires a change in the mapping, otherwise, all content sync related to posts will silently fail. If you’ve upgraded to 3.6.0 and didn’t resync your content yet (via Dashboard or with WP-CLI wp elasticpress index --setup
) make sure to do so.
Added:
- Filter
ep_remote_request_add_ep_user_agent
. Passingtrue
to that, the ElasticPress version will be added to the User-Agent header in the request. Props @felipeelia. - Flagged
3.6.0
as version that needs a full reindex. Props @adiloztaser and @felipeelia.
Changed:
- Notice when a sync is needed is now an error. Props @felipeelia and @brandwaffle.
Fixed:
- Encode the Search Term header before sending it to ElasticPress.io. Props @felipeelia.
3.6.0 – 2021-07-07
Note that the upcoming ElasticPress 3.7.0 release will remove built assets from the develop
branch, will replace master
with trunk
, will build a stable release version including built assets into a stable
branch, and will include a build script should you want to build assets from a branch. As such, please plan to update any references you have from master
to either stable
or trunk
depending on whether you require built assets or not.
This version requires a full reindex.
Breaking Changes:
- Autosuggest will now respect the
[name="post_type"]
input in the same form. Before it would bring all post types. Props @mustafauysal and @JakePT. - Facets Widget presentation, replacing the
<input type="checkbox">
elements in option links with a custom.ep-checkbox presentational
div. Props @MediaMaquina, @amesplant, @JakePT, and @oscarssanchez. - Confirmation for destructive WP-CLI commands. Props @nickdaugherty and @Rahmon.
Added:
- Comments Indexable. Props @dkotter, @dinhtungdu, @Rahmon, and @felipeelia.
- “ElasticPress – Comments”, a search form for comments. Props @Rahmon and @felipeelia.
- Facets: new
ep_facet_allowed_query_args
filter. Props @mustafauysal, @JakePT,@Rahmon, and @felipeelia. - Facets: new
ep_facet_use_field
filter. Props @moraleida. - GitHub Action to auto-close non-responsive reporter feedback issues after 3 days. Props @jeffpaul.
- Autosuggest: new
ep_autosuggest_default_selectors
filter. Props @JakePT and @johnbillion. - WP-CLI: Index by ID ranges with
--upper-limit-object-id
and--lower-limit-object-id
. Props @WPprodigy, @Rahmon, and @felipeelia. Elasticsearch::get_documents()
andIndexable::multi_get()
. Props @nickdaugherty, @felipeelia, and @Rahmon.- Custom sorting to features on the Features page. Props @Rahmon.
- Terms: add a new
facet
field to hold the entire term object in json format. Props @moraleida. - Elasticsearch connection check to Site Health page. Props @spacedmonkey and @Rahmon.
- Support for NOT LIKE operator for meta_query. Props @Thalvik) and @Rahmon.
- Support for
category__not_in
andtag__not_in
. Props @oscarssanchez and @felipeelia. - Support for
post__name_in
. Props @jayhill90 and @oscarssanchez. $indexable_slug
property toElasticPress\Indexable\Post\SyncManager
. Props @edwinsiebel.- Permission check bypass for indexing / deleting for cron and WP CLI. Props @nickdaugherty and @felipeelia.
- Check if term exists before a capabilities check is done. Props @msawicki.
- New
ep_show_indexing_option_on_multisite
filter. Props @johnbillion and @Rahmon. - Documentation updates related to upcoming changes in 3.7.0. Props @jeffpaul.
- Documentation about how to search using rendered content (shortcodes and reusable blocks). Props @johnbillion and @felipeelia.
- Autosuggest: filter results HTML by defining a
window.epAutosuggestItemHTMLFilter()
function in JavaScript. Props @JakePT.
Changed:
- Facets Widget presentation, replacing the
<input type="checkbox">
elements in option links with a custom.ep-checkbox presentational
div. Props @MediaMaquina, @amesplant, @JakePT, and @oscarssanchez. - Autosuggest: JavaScript is not loaded anymore when ElasticPress is indexing. Props @fagiani and @felipeelia.
Indexable\Post\Post::prepare_date_terms()
to only calldate_i18n()
once. Props @WPprodigy and @Rahmon.
Removed:
- Assets source mappings. Props @Rahmon and @MadalinWR.
- References to
posts_by_query
property andspl_object_hash
calls. Props @danielbachhuber and @Rahmon.
Fixed:
- GitHub issue templates. Props @jeffpaul.
- Facets: error in filters where terms wouldn’t match if the user types a space. Props @felipeelia.
- Facets: pagination parameters in links are now removed when clicking on filters. Props @shmaltz, @oscarssanchez, and @Rahmon.
- Output of WP-CLI index errors. Props @notjustcode-sp and @felipeelia.
index_name
is transformed in lowercase before the index creation in Elasticsearch. Props @teoteo and @felipeelia.- Validate that a meta_value is a recognizable date value before storing. Props @jschultze, @moraleida and @Rahmon.
- Array with a MIME type without the subtype in
post_mime_type
argument. Props @ethanclevenger91 and @Rahmon. - Sort for WP_User_Query. Props @Rahmon.
- WP Acceptance Tests. Props @felipeelia.
- Styling issue of Autosuggest and search block (WP 5.8). Props @dinhtungdu.
Undefined variable: closed
notice inElasticsearch::update_index_settings()
. Props @nickdaugherty and @pschoffer.- Documentation for WP-CLI
*-feature
commands. Props @felipeelia. - Custom Results: a
current_user_can()
call now receives the post ID instead of the whole object. Props @Sysix. - Autosuggest: adjust debounce to avoid sending unnecessary requests to the server. Props @Rahmon.
Security:
- Updated browserslist and jsdoc versions. Props @felipeelia.
- Updated lodash, hosted-git-info, ssri, rmccue/requests, and y18n versions. Props @dependabot.
3.5.6 – 2021-03-18
This release fixes some bugs and also adds some new actions and filters.
Security Fix:
- Updated JS dependencies. Props @hats00n and @felipeelia
Bug Fixes:
- Fixed document indexing when running index command with nobulk option. Props @Rahmon
- Added an extra check in the iteration over the aggregations. Props @felipeelia
- Fixed no mapping found for [name.sortable] for Elasticsearch version 5. Props @Rahmon
- Fixed uninstall process to remove all options and transients. Props @Rahmon
Enhancements:
- Added missing inline JS documentation. Props @JakePT
- Added the filter
ep_autosuggest_http_headers
. Props @Rahmon - Added terms indexes to the status and stats WP-CLI commands. Props @felipeelia
- The Protected Content feature isn’t auto-activated when using ElasticPress.io anymore. Props @felipeelia
- Added the new filter
ep_highlight_should_add_clause
to let developers decide where the highlight clause should be added to the ES query. Props @felipeelia - Added the new filter
epwr_weight
and changed the default way scores are applied based on post date. Props @Rahmon
3.5.5 – 2021-02-25
This release fixes some bugs and also adds some new actions and filters.
Bug Fixes:
- Fix a problem in autosuggest when highlighting is not active. Props @felipeelia and @Rahmon
- Fix a wrong phrase in the Indexables documentation. Props @jpowersdev
- Fix Facet Term Search for more than one Widget. Props @goaround
- Fix a Warning that was triggered while using PHP 8. Props @Rahmon
Enhancements:
- Add an
is-loading
class to the search form while autosuggestions are loading. Props @JakePT - Add the new
set-algorithm-version
andget-algorithm-version
WP-CLI commands. Props @felipeelia - Add a new
ep_query_weighting_fields
filter. Props @felipeelia and @tott - Add two parameters to the
ep_formatted_args_query
filter. Props @felipeelia and @tott - Add the new
set-algorithm-version
andget-algorithm-version
WP-CLI commands. Props @felipeelia - Create a new section in documentation called
Theme Integration
. Props @JakePT - Improvements to contributing documentation and tests. Props @jeffpaul and @felipeelia
- Add the following new actions:
ep_wp_cli_after_index
,ep_after_dashboard_index
,ep_cli_before_set_search_algorithm_version
,ep_cli_after_set_search_algorithm_version
,ep_after_update_feature
,ep_cli_before_clear_index
, andep_cli_after_clear_index
. Props @felipeelia and @Rahmon
3.5.4 – 2021-02-11
This is primarily a security and bug fix release. PLEASE NOTE that versions 3.5.2 and 3.5.3 contain a vulnerability that allows a userto bypass the nonce check associated with re-sending the unaltered default search query to ElasticPress.io that is used for providing Autosuggest queries. If you are running version 3.5.2. or 3.5.3 please upgrade to 3.5.4 immediately.
Security Fix:
- Fixed a nonce check associated with updating the default Autosuggest search query in ElasticPress.io. Props @felipeelia
Bug Fixes:
- Fix broken click on highlighted element in Autosuggest results. Props @felipeelia
- Properly cast
from
parameter in$formatted_args
to an integer to prevent errors if empty. Props @CyberCyclone
Enhancements:
- Add an
ep_is_facetable
filter to enable custom control over where to show or hide Facets. Props [@moraleida] - Improvements to contributing documentation and tests. Props @jeffpaul and @felipeelia
3.5.3 – 2021-01-28
This is a bug fix release.
Bug Fixes:
- Fixed a bug where the
ep-synonym
post type is updated to a regular post, which can cause it to be accidentally deleted. Props @Rahmon - Fixed CSS formatting issues in the Settings and Features menus. Props @Rahmon
3.5.2 – 2021-01-18
This is a bug fix release.
Bug Fixes:
- Fixed a typo in elasticpress.pot. Props @alexwoollam
- Don’t use timestamps that cause 5 digit years. Props @brandon-m-skinner
- Fix admin notice on the Synonyms page. Props @Rahmon
- Properly update slider numbers while sliding. Props @Rahmon
- Properly handle error from
get_terms()
. Props @ciprianimike - Fix incorrect titles page. Props @Rahmon
- Fix linting tests. Props @felipeelia
- Fix issue with price filter unsetting previous query. Props @oscarssanchez
Enhancements:
- Added actions that fire after bulk indexing (
ep_after_bulk_index
), in event of an invalid Elasticsearch response (ep_invalid_response
), and before object deletion (ep_delete_{indexable slug}
); added filtersep_skip_post_meta_sync
,pre_ep_index_sync_queue
,ep_facet_taxonomies_size
,epwr_decay_function
,and epwr_score_mode
. Props @brandon-m-skinner - Added
ep_filesystem_args
filter. Props @pjohanneson - Add SKU field to Weighting Engine if WooCommerce is active and fix issue with overriding
search_fields
. Props @felipeelia - Support
author__in
andauthor__not_in
queries. Props @dinhtungdu - Update multiple unit tests. Props @petenelson
- Show CLI indexing status in EP dashboard. Props @Rahmon
- Add
ep_query_send_ep_search_term_header
filter and don’t sendEP-Search-Term
header if not using ElasticPress.io. Props @felipeelia
3.5.1 – 2020-10-29
A bug fix release.
Bug fixes:
- Fixes highlighting so that full content is returned instead of only snippets.
- Fix empty synonym bug.
- Only highlight post content, excerpt, and title.
Enhancements:
- Track CLI index in a headless fashion
3.5.0 – 2020-10-20
Version 3.5 is a very exciting release as it contains two major new features: a synonym dashboard and search term result highlighting. The synonym dashboard empowerers users to create synonym lists for searches. For example. searching “New York City” would return contain with “NYC”. Search term highlighting will underline and add a CSS class to keywords within content that matches the current search.
The new version also includes a revamp of the search algorithm. This is a backwards compatibility break. If you’d like to revert to the old search algorithm, you can use the following code: add_filter( 'ep_search_algorithm_version', function() { return '3.4'; } );
. The new algorithm offers much more relevant search results and removes fuzziness which results in mostly unwanted results for most people. If you are hooking in and modifying the search query directly, it’s possible this code might break and you might need to tweak it.
Bug fixes:
- Fix default autosuggest selector.
- Fix facet feature $_GET parameter naming collision.
- Autosuggest a11y fixes. Props amesplant.
- Check $feature type before calling Feature methods. Props pdewouters.
- Ensure trashed post is removed from Elasticsearch. Props edwinsiebel.
- Add default permission callback to REST routes. Props dkotter.
- Hide links to weighting and synonym dashboard if network activated. Props felipeelia.
- Only sync post on allow listed post meta. Props felipeelia.
- Check if site is indexable before syncing in network activated mode.
- Fix facet widget and 3-level deep hierarchical taxonomy. Props dinhtungdu.
- Make sure AJAX sync is disabled if EP_DASHBOARD is set to false.. Props turtlepod.
Enhancements:
- Synonym dashboard. Props christianc1.
- Search term highlighting. Props oscarsanchez.
- Search algorithm improvements.
- Improved WP Acceptance tests. Props asharirfan.
- Rename ElasticPress submenu to “Features”. Props helen.
- Add functionality for skipping ElasticPress install.
- Increase max supported Elasticsearch version to 7.9.
- Add filter to prepared user meta data. Props g-kanoufi.
- Improve Terms Feature terminology to remove confusion.
- Add filter to facet terms query arguments. Props felipeelia.
3.4.3 – 2020-07-21
Enhancements:
- Remove jQuery from front end JavaScript dependencies.
Bug Fixes:
- Fix accessibility bug on autosuggest.
- Fix broken facet search.
3.4.2 – 2020-06-17
Bug fixes:
- uninstall.php: Change the EP_FILE const to its value. Props felipeelia.
- Fix list features WP CLI command. Props felipeelia.
- Add
rel="nofollow"
to facet links. Props mlaroy. - Facets widget: Move
<
div> outside ob_start(). Props kallehauge.
* Load facet scripts and styles only when they are really necessary. Props goaround.
* Index attachments with Protected Content and query for them in media search. Props oscarsanchez.
* Fixed Deprecated field [include] used, expected [includes] instead.
. Props dinhtungdu.
Enhancements:
- Add filter for enabling sticky posts. Props shadyvb.
- Add sync kill filter. Props barryceelen.
- Add timeout filters for bulk_index and index_document. Props @oscarsanchez.
3.4.1 – 2020-3-31
- Make weighting dashboard flex containers to prevent the slider from changing size. Props @mlaroy.
- Fix issue where weightings wouldn’t save properly for certain post types. Props mustafauysal.
- Fix bug where terms wouldn’t finish syncing in certain scenarios.
- Properly order WooCommerce products using double to account for decimals. Props @oscarsanchez.
- Show current indices in index health dashboard. Props moraleida.
3.4.0 – 2020-03-03
- Addition of Terms Indexable and Feature. ElasticPress can now integrate with
WP_Term_Query
. Props dkotter. - Fixes for
WP_User_Query
‘fields’ parameter. Props petenelson. - Support all taxonomies in root of
WP_Query
- Readd
ep_retrieve_aggregations
hook for backwards compatibility - Move indexable posts class registration into a function that runs in the
plugins_loaded
action. Props petenelson. - Fix author name in weighting and use post_author.display_name for weighted author field search. Props petenelson.
- Add
ep_prepared_*_meta
filters - Refactor CLI indexing code for simplicity.
- Limit indexed Protected Content post types removing
revision
,oembed_cache
,custom_css
,user_request
,customize_changeset
, andwp_block
. - Cast taxonomy slug to array in case it’s already an array in
WP_Query
. - Remove unnecessary usage of
--network-wide
CLI paramter. - Add name, nickname, and display name to fields used for user search.
- Add
clear-transient
WP CLI command. - Don’t make product categories facetable when WooCommerce feature is not active. Props mustafauysal.
3.3.0 – 2018-12-18
- Officially support Elasticsearch 7.5
- Add optional Google Analytics Autosuggest tracking Event
- Fix single node warning before sync has occurred.
- When
ep_integrate
is set to false, do not apply faceting. - Fix search ordering error when there are no pointers.
- Add filter
ep_get_hits_from_query
to modify retrieved Elasticsearch hits. - Make sure
post_type
array does not include keys. Fixes a bbPress issue. - Pass query object to EP response so we can check for main query. This fixes a faceting bug.
- Add EP-Search-Term header to autosuggest requests to EP.io
- Clean up indexing transient on sigkill
3.2.6 – 2019-11-27
This is a bugfix release
- Under some edge conditions content for autosuggest can be large – don’t cache it
3.2.5 – 2019-11-20
This is a bug fix version.
- Fix WP <5.0 fatal error on register_block_type.
3.2.4 – 2019-11-19
This is a bug fix version.
- Fix Gutenberg block initialization
- Fix Autosuggest: remove filter with proper priority in query generation. Props Maxdw.
- Fix Autosuggest: returning WP_Error for non object cache autosuggest queries causes issue. Fallback to transient
3.2.3 – 2019-11-13
This is a bug fix version.
- Ensure query building for Autosuggest does not fallback to WPDB.
3.2.2 – 2019-11-05
This is a bug fix version with some feature additions.
- Fix PHPCS errors. Props mmcachran
- Fix ensuring stats are built prior to requesting information
- Fix related post block enqueue block assets on the frontend
- Fix custom order results change webpack config for externals:lodash
- Fix don’t overwrite search fields
- Autosuggest queries generated though PHP instead of JavaScript
- Add WP Acceptance tests
- Add new WP-CLI commands: get_indexes and get_cluster_indexes
3.2.1 – 2019-10-14
This is a bug fix version.
- Fix Gutenberg breaking issue with Related Posts and image blocks. Props adamsilverstein
3.2.0 – 2019-10-08
ElasticPress 3.2 is a feature release. We’ve added quite a few useful features including an index health page, the ability to control which sites are indexed in a network activated multisite setup, a related posts Gutenberg block, and more.
- Improve block asset enqueueing: hook on
enqueue_block_editor_assets
. Props adamsilverstein. - Handle empty search weighting fields bug.
- Integrate WooCommerce default filter by price widget with ES range query.
- Improve messaging for custom result post type.
- Index health page.
- Add tag_in and tag__and support.
- Related posts Gutenberg block.
- Facet widget ordering option. Props psorensen.
- Control Index-ability of individual sites in multisite.
- Integrate WooCommerce default filter by price widget with ES range query.
See https://github.com/10up/ElasticPress/pulls?utf8=%E2%9C%93&q=is%3Apr+milestone%3A3.2.0+is%3Aclosed+
3.1.4 – 2019-08-28
Version 3.1.4 is a bug fix release.
See fixes: https://github.com/10up/ElasticPress/pulls?q=is%3Apr+milestone%3A3.1.4+is%3Aclosed
3.1.3 – 2019-08-22
This is a bug fix release.
- Check wpcli transient before integrating with queries
- Fix version comparison bug when comparing Elasticsearch versions
- Use proper taxonomy name for WooCommerce attributes.
- Increase Elasticsearch minimum supported version to 5.0
- Fix product attribute archives
3.1.2 – 2019-08-16
This is a bug fix release with some filter additions.
- Add ep_es_query_results filter.
- Add option to sync prior to shutdown.
- Readme update around WPCLI post syncing. Props @mmcachran
- Ignore sticky posts in
find_related
. Props @columbian-chris - Weighting dashboard fixes around saving. @oscarsanchez
- Weighting UI improvements. Props @mlaroy
3.1.1 – 2019-07-25
- Ensure taxonomies that are shared among multiple post types show up on the weighting screen
3.1.0 – 2019-07-22
- Support for nested tax queries. Props @dkotter
ep_bulk_index_action_args
filter. Props @fabianmarz- Add filters to control MLT related posts params.
ep_allow_post_content_filtered_index
filter to bypass filtered post content on indexing.- Weighting dashboard to control weights of specific fields on a per post type basis
- Search ordering feature. Enables custom results for specific search queries.
- Refactor admin notice, admin screen “resolver”, and install path logic
- WordPress.org profile
- New EP settings interface. Props @dkoo
- Delete pagination from facet URL.
- allows WooCommerce product attributes to be facetable in 3.0
- Autosuggest queries now match the search queries performed by WordPress, including weighting and any custom results
- Fix data escaping in WP 4.8.x
- Support order by “type”/”post_type” in EP queries
- Properly redirect after network sync
- User mapping for pre 5.0 Props @mustafauysal
- Avoid multiple reflows in autosuggest. Props @fabianmarz
- 400 error when popularity is default sorting.
- Fixed Facet widget not rendering WC product attribute options. Props @fabianmarz
- Delete wpcli sync option/transient when an error occurs
- Create index/network alias when adding a new site on a network activated installation. Props @elliott-stocks
- Fix WooCommerce order search when WooCommerce module activated but protected content turned off.
3.0.3 – 2019-06-04
- Pass $post_id twice in ep_post_sync_kill for backwards compatibility. Props aaemnnosttv
- Add
ep_search_request_path
filter for backwards compant. - Add
ep_query_request_path
filter for modifying the query path. - Fix missing action name in post query integration.
- Properly add date filter to WP_Query.
3.0.2 – 2019-05-23
3.0.2 is a minor bug release version. Here is a list of fixes:
- Fix date query errors
- Readd ep_retrieve_the_{type} filter. Props gassan
- Fix empty autosuggest selector notice
3.0.1 – 2019-05-20
3.0.1 is a minor bug release version. Here is a list of fixes:
wp elasticpress stats
andwp elasticpress status
commands fatal error fixed.- Add autosuggest selector field default to fix notice.
- Re-add
ep_find_related
as deprecated function. - Changed max int to use core predefined constant. Props @fabianmarz
- Properly support legacy feature registration callbacks per #1329.
- Properly disable settings as needed on dashboard.
- Don’t force document search on REST requests.
3.0 – 2019-05-13
NOTICE: Requires re-index.
3.0 is a refactor of ElasticPress for modern coding standards (PHP 5.4 required) as well as the introduction to indexables. Indexables abstracts out content types so data types other than post can be indexed and searched. 3.0 includes user indexing and search (integration with WP_User_Query). User features require at least WordPress version 5.1.
The refactor changes a lot of ElasticPress internals. The biggest change is the feature registration API has completely changed. Now, new features should extend the ElasticPress\Feature
class rather than calling ep_register_feature
. Older features should be backwards compatible.
Other Features:
* Elasticsearch language setting in admin
Here are a list of filters/actions removed or changed:
Actions Removed:
ep_feature_setup
Filters changed:
ep_post_sync_kill
– Removed$post_args
argument.
Other changes:
posts-per-page
changed toper-page
for WP-CLI index command.
2.8.2 – 2019-03-26
- Enhancement: WooCommerce product attributes as facets.
- Enhancement: Performance Boost for document indexing.
- Bugfix for issue on WP REST API searches.
- Bugfix for case-sensitivity issue with facet search.
2.8.1 – 2019-02-13
- Bugfix for homepage out of chronological order.
- Bugfix for missing meta key. (Props turtlepod)
- Bugfix for bulk indexing default value on settings page.
2.8.0 – 2019-02-08
ElasticPress 2.8 provides some new enhancements and bug fixes.
- Sticky posts support.
- Meta LIKE query adjustment.
- Autosuggest bugfix.
- Autosuggest to abide by plugin settings.
- WooCommerce searches with custom fields.
- Adjustment to
wp elasticpress status
- Add Elasticsearch version in settings. (Props turtlepod)
- Allow user to set number of posts during bulk indexing cycle.
- Facet query string customization (Props ray-lee)
- Removal of logic that determines if blog is public / indexable. (Resolves sync issue.)
- Fix for auto activating sync notices. (Props petenelson)
- Removal of date weighting for protected content admin queries.
- Protected content: filtering of filtered post types.
- Implemented –post-ids CLI option to index only specific posts. (Props dotancohen)
2.7.0 – 2018-12-06
NOTICE: Requires re-index
ElasticPress 2.7 provides some new enhancements and bug fixes.
- Prevent indexing when blog is deleted or not public.
- Do not apply absint to comment_status.
- ElasticPress.io credentials bugfix.
- Related posts bugfix.
- Random WooCommerce ordering allowed.
- Query only post IDs when indexing. (Props elliott-stocks)
- Better error notices. (Props petenelson)
2.6.1 – 2018-08-24
- Resolves issue of missing file for wp-cli.
2.6.0 – 2018-08-22
ElasticPress 2.6 provides some new enhancements and bug fixes.
- Ability to set autosuggest endpoint by a constant (EP_AUTOSUGGEST_ENDPOINT).
- Enable WooCommerce products to be included in autosuggest results.
- Support for tax_query operators EXISTS and NOT EXISTS.
- Addition of new filter to change default orderby/sort (ep_set_default_sort).
- Do not search for author_name when searching products in WooCommerce.
2.5.2 – 2018-05-09
NOTICE: Requires re-index.
This is a small bug fix release.
- Removed unnecessary facet JavaScript
- Fix facet aggregations warning
2.5.1 – 2018-05-02
NOTICE: Requires re-index.
This if a bug fix release. This version requires a re-index as we change the way data is being sent to Elasticsearch.
It’s also worth noting for ElasticPress version 2.5+, the Facets feature, which is on by default, will run post type archive and search page main queries through Elasticsearch. If Elasticsearch is out of sync with your content (possible in rare edge cases), this could result in incorrect content being shown. Turning off Facets would fix the problem.
Bug Fixes
- Don’t pre-strip HTML before sending it to Elasticsearch.
- Support PHP 5.2 backwards compat.
- Don’t show faceting widget if post type doesn’t support taxonomy.
2.5 – 2018-04-23
ElasticPress 2.5 includes a new Facets feature that makes it easy to add high performance content filtering controls to a website.
A new Facets widget enables site administrators to add taxonomy facets to a sidebar (or any widgetized area). When viewing a content list on the front end of the website, the widget will display the name of the taxonomy – e.g. “Categories” – and a checklist with all of its terms. Visitors can narrow down content by selecting terms they are interested in. The Facets feature can be globally configured to narrow results to content that is tagged with any or all of the selected terms. The widget’s front end output contains carefully named CSS classes, so that designers and developers can apply unique styling.
Version 2.5 also includes a number of smaller enhancements and fixes, including official support for Elasticsearch 6.2, and increased functional parity with the WP_Query API.
Here is a detailed list of what’s been included in the release:
Enhancements
- Facets feature
--post-ids
CLI option to index only specific posts. Props dotancohen.- Filter for hiding host setting in dashboard. Props tomdxw.
- Support
WP_Query
meta querynot between
comparator.
Bugs
- Disallow duplicated Elasticsearch requests on WooCommerce orders page. Props lukaspawlik
- Fix taxonomy sync object warning. Props eugene-manuilov
true
inis_empty_query
terminates ep_query process when it shouldn’t. Props yaronuliel
2.4.2 – 2018-01-31
Version 2.4.2 is a bug fix version.
- Fix related posts not showing up bug.
2.4.1 – 2018-01-30
Version 2.4.1 is a bug fix and maintenance release. Here are a listed of issues that have been resolved:
- Support Elasticsearch 6.1 and properly send Content-Type header with application/json. Props eugene-manuilov.
- Fix autosuggest event target issue bug. Props eugene-manuilov.
- Fix widget init bug. Props eugene-manuilov.
- Fix taxonomy sync parameter warning. Props eugene-manuilov.
- Increase maximum Elasticsearch compatibility to 6.1
2.4 – 2017-11-01
Version 2.4 introduces the Autosuggest feature. When enabled, input fields of type “search” or with the CSS class “search-field” or “ep-autosuggest” will be enhanced with autosuggest functionality. As text is entered into the search field, suggested content will appear below it, based on top search results for the text. Suggestions link directly to the content.
We also added hooks and filters to ElasticPress that make query logging possible. The Debug Bar ElasticPress plugin now adds a Query Log screen to the ElasticPress admin menu. The Query Log is an extremely powerful tool for diagnosing search and indexing issues.
Here is a comphrensive list of changes:
Enhancements
- Autosuggest feature
- Hooks for query log functionality in Debug Bar ElasticPress
- Support
WP_Query
fields
parameter. Props kallehauge. - Add setting for enabling/disabling date weighting in search. Props lukaspawlik.
- Remove extra post meta storage key from Elasticsearch
- Add shipping class as indexed WooCommerce taxonomy. Props kallehauge.
- Allow WooCommerce orders to be searched by items. Props kallehauge.
- Support Elasticsearch 5.6
- Add filter to granularly control admin notices. Props mattonomics.
- Support ES 5.5+ strict content type checking. Props sc0ttclark
Bug Fixes
- Fix
author_name
search field. Props ivankristianto. - Fix unavailable taxonomy issue in WooCommerce. Props ivankristianto.
- Index all publicly queryable taxonomies. Props allan23.
- Resolve case insensitive sorting issues. Props allan23.
- Add escaping per VIP standards. Props jasonbahl.
- Fix WooCommerce post type warnings.
= 2.3.1, 2.3.2 – 2017-06-30=
Version 2.3.1-2.3.2 is a bug fix release. Here are a listed of issues that have been resolved:
- Cache ES plugins request. This is super important. Instead of checking the status of ES on every page load, do it every 5 minutes. If ES isn’t available, show admin notification that allows you to retry the host.
- Fix broken upgrade sync notification.
- Properly respect WC product visibility. Props ivankristianto. This requires a re-index if you are using the WooCommerce feature.
2.3 – 2017-05-26
Version 2.3 introduces the Documents feature which indexes text inside of popular file types, and adds those files types to search results. We’ve also officially added support for Elasticsearch 5.3.
Enhancements
- Documents feature
- Enable multiple feature status messages
- Disable dashboard sync via constant:
define( 'EP_DASHBOARD_SYNC', false );
. Props rveitch. - Add filter for custom WooCommerce taxonomies. Props kallehauge.
- Support WooCommerce
product_type
taxonomy. Props kallehauge.
Bug Fixes
- Fix WP-CLI
--no-bulk
number of posts indexed message. Props ivankristianto. - Honor
ep_integrate
in WooCommerce queries. Props ivankristianto. - Properly check when ES results are empty. Props lukaspawlik
- Incorrect
found_posts
set in query when ES is unavailable. Props lukaspawlik
2.2.1 – 2017-03-30
Version 2.2.1 is a bug fix release. Here are a listed of issues that have been resolved:
- Fix dashboard syncing delayed start issues.
- If plugins endpoint errors, try root endpoint to get the ES version.
- Make sure orderby is correct for default WooCommerce sorting. Props ivankristianto.
- Remove operator=>AND unneed execution code.
- Stop dashboard sync if error occurs in the middle. Props ivankristianto.
- Add
EP_INDEX_PREFIX
constant. If set, index names will be prefixed with the constant. Props allan23. - Increase total field limit to 5000 and add filter. Props ssorathia.
- Prevent EP from auto-activating a feature that was force deactivated
- Prevent massive field Elasticsearch error when indexing large strings
- Increase max result window size to 1000000 and add filter.
2.2 – 2017-02-28
NOTICE: Requires re-index.
Version 2.2 rethinks the module process to make ElasticPress a more complete query engine solution. Modules are now auto-on and really just features. Why would anyone want to not use amazing functionality that improves speed and relevancy on their website? Features (previously modules) can of course be overridden and disabled. Features that don’t have their minimum requirements met, such as a missing plugin dependency, are auto-disabled.
We’ve bumped the minimum Elasticsearch version to 1.7 (although we strongly recommend 2+). The maximum tested version of Elasticsearch is version 5.2. If you are running Elasticsearch outside this version range, you will see a warning in the dashboard.
Enhancements
- (Breaking change) Module registration API changed. See
register_module
inclasses/class-ep-modules.php
. - (Breaking change) Related posts are now in a widget instead of automatically being appending to content.
- (Breaking change) Admin module renamed to Protected Content.
- Admin warning if current Elasticsearch version is not between the min/max supported version. Version 2.2 supports versions 1.3 – 5.1.
- Auto-reindex on versions requiring reindex.
- User friendly admin notifications for ElasticPress not set up, first sync needed, and feature auto activation.
- Protected Content feature applies to all features. This means if Protected Content isn’t active, search or WooCommerce integration won’t happen in the admin.
- Add support for post_mime_type. Props Ritesh-patel
Bug Fixes
- Back compat with old
ep_search
function. - Respect indexable post types in WooCommerce feature
- New product drafts not showing in WooCommerce admin list
- WooCommerce feature breaking image search in media library. Props Ritesh-patel
- WooCommerce order search broken
- Stop the insansity made private. Props sc0ttclark
- Fix multidimensional meta querys. Props Ritesh-patel.
- Properly show bulk index errors in WP-CLI
- Update ep_delete_post, include $post_type argument. Props Ritesh-patel
- Fix post_type product getting set in any WP_Query if tax_query is provided in WooCommerce feature. Props Ritesh-patel
- Adds ‘number’ param to satisfy WP v4.6+ fixing get_sites call. Props rveitch
- Order by proper relevancy in WooCommerce product search. Props ivankristianto
- Fix recursion fatal error due to oembed discovery during syncing. Props ivankristianto
2.1.2 – 2016-11-11
NOTICE: Requires re-index.
- Separate mapping for ES 5.0+
- Fix some unit tests
2.1.1 – 2016-09-29
- Fix PHP 5.3 errors
- Properly show syncing button module placeholder during sync
2.1 – 2016-09-20
- Redo UI
- Make plugin modular
- Remove unnecessary back up hosts code
- Bundle existing modules into plugin
- Support
meta_key
andmeta_value
- Order by
meta_value_num
- Properly support
post_parent = 0
. Props tuanmh - Add search scope file. Props rveitch
- Support WP_Query
post_status
. Props sc0ttclark
Backward compat breaks:
- Move ep_admin_wp_query_integration to search integration only. EP integration by default is available everywhere.
- Remove
keep alive
setting - Remove setting to integrate with search (just activate the module instead)
- Back up hosts code removed
- Remove active/inactive state. Rather just check if an index is going on our not.
Bug fixes
- Fix
post__in
support - Fix
paged
overwritingoffset
- Fix integer and comma separated string
sites
WP_Query processing. Props jaisgit.
2.0.1 – 2016-08-02
Bug fixes
- Don’t load settings on front end. This fixes a critical bug causing ElasticPress to check the Elasticsearch connection on the front end.
2.0 – 2016-06-01
10up ships ElasticPress 2.0 with radical search algorithm improvements and a more comprehensive integration of WP_Query. ElasticPress is now even closer to supporting the complete WP_Query API. This version also improves upon post syncing ensuring that post meta updates are synced to Elasticsearch, adds a number of important hooks, and, of course, fixes some pesky bugs.
Enhancements
- Radical search algorithm improvements for more relevant results (see #508 for details)
- Support meta
BETWEEN
queries. - Improve GUI by disabling index status meta box text and improving instructions. Props ivanlopez
- Support
OR
relation for tax queries. - Sync post to Elasticsearch when meta is added/updated.
- Support all taxonomies as root WP_Query arguments. Props tuanmh
- Add
ID
field to Elasticsearch mapping - Support
post_parent
WP_Query arguments. Props tuanmh - Add filter to disable printing of post index status. Props tuanmh
- Add useful CLI hooks
- Add a filter to bypass permission checking on sync (critical for front end updates)
Bugs
- Consider all remote request 20x responses as successful. Props tuanmh
- Fix plugin localization. Props mustafauysal
- Do query logging by default. Props lukaspawlik
- Fix cannot redeclare class issue. Props tuanmh
- Fix double querying Elasticsearch by ignoring
category_name
whentax_query
is present. - Fix post deletion endpoint URL. Props lukaspawlik
A special thanks goes out to Tuan Minh Huynh and everyone else for contributions to version 2.0.
1.9.1 – 2016-05-23
Quick bug fix version to address the GUI not working properly when plugin is not network enabled within multisite. Props to Ivan Lopez
1.9 – 2016-05-17
ElasticPress 1.9 adds in an admin UI, where you can set your Elasticsearch Host and run your index command, without needing to us WP-CLI. Version 1.9 also adds in some performance improvements to reduce memory consumption during indexing. Full list of enhancements and bug fixes:
Enhancements:
- Add in an Admin GUI to handle indexing. Props ChrisWiegman.
- Add option to not disable ElasticPress while indexing. Props lukaspawlik.
- Allow filtering of which post types we want to search for. Props rossluebe.
- Remove composer.lock from the repo. Props ChrisWiegman.
- Ensure both PHPUnit and WP-CLI are available in the development environment. Props ChrisWiegman.
- User lower-case for our composer name, so packagist can find us. Props johnpbloch.
- Check query_vars, not query to determine status. Props ChrisWiegman.
- Improve memory usage during indexing and fix unnecessary cache flushes. Props cmmarslender.
- Further reduce memory usage during indexing. Props lukaspawlik.
- Add post__in and post__not_in documentation. Props mgibbs189.
- Add Elasticsearch Shield authentication headers if constant is set. Props rveitch.
Bugs:
- Fix the –no-bulk indexing option. Props lukaspawlik.
- Fixed an error that occurs if no Elasticsearch host is running. Props petenelson.
- Fixed an exception error. Props dkotter.
- Fixed the WP-CLI status command. Props dkotter.
1.8 – 2016-01-19
NOTICE: Mapping change, requires re-index.
ElasticPress 1.8 adds a bunch of mapping changes for accomplishing more complex WP_Query functions such as filtering by term id and sorting by any Elasticsearch property. Version 1.8 also speeds up post syncing dramatically through non-blocking queries. Full list of enhancements and bug fixes:
Enhancements:
- Add a filter around the search fuzziness argument. Props dkotter.
- Make post indexing a non-blocking query. Props cmmarslender.
- Log queries for debugging. Makes ElasticPress Debug Bar plugin possible.
- Make
posts_per_page = -1
possible. - Support term id and name tax queries.
- Add raw/sortable to property to term mapping. Props sc0ttkclark
- Add raw/sortable property to meta mapping. Props sc0ttkclark
- Add raw/sortable to author display name and login
Bugs:
- Fix post deletion. Props lukaspawlik.
- Properly flush cache with
wp_cache_flush
. Props jstensved - When directly comparing meta values in a meta query, use the
raw
property instead ofvalue
. - Support arbitrary document paths in orderby. Props sc0ttkclark.
1.7 – 2015-12-11
NOTICE: Mapping change, requires re-index.
ElasticPress 1.7 restructures meta mapping for posts for much more flexible meta queries. The post_meta
Elasticsearch post property has been left for backwards compatibility. As of this version, post meta will be stored in the meta
Elasticsearch property. meta
is structured as follows:
meta.value
(string)meta.raw
(unanalyzed string)meta.long
(unanalyzed number)meta.double
(unanalyzed number)meta.boolean
(unanalyzed number)meta.date
(unanalyzed yyyy-MM-dd date)meta.datetime
(unanalyzed yyyy-MM-dd HH:mm:ss datetime)time
(unanalyzed HH:mm:ss time)
When querying posts, you will get back meta.value
. However, if you plan to mess with the new post mapping, it’s important to understand the intricacies.
The real implications of this is in meta_query
. You can now effectively search by meta types. See the new section in README.md for details on this.
1.7 also contains the following bugs/enhancements:
- (Bug) Prevent missed post indexing when duplicate post dates. Props lukaspawlik
- (Bug) Complex meta types are automatically serialized upon storage.
- (Enhancement) Index posts according to post type. Props sc0ttkclark
1.6.2 – 2015-11-12
NOTICE: Mapping change, requires re-index.
ElasticPress 1.6.2 fixes ALL backwards compatibility issues with Elasticsearch 2.0:
- Removes
fuzzy_like_this
query and usesmulti_match
instead. - Uses string instead of array for post type term when there is only one term.
1.6.1 – 2015-11-09
NOTICE: Mapping change, requires re-index.
ElasticPress 1.6.1 fixes mapping backwards compatibility issues with Elasticsearch 2.0:
- Removes the fields field type from object typed fields as they should be called properties.
- Remove path from object field types.
1.6 – 2015-08-31
ElasticPress 1.6 contains a number of important enhancements and bug fixes. Most notably, we now support Elasticsearch fallback hosts and the indexing of attachments.
Bug Fixes:
- Clean up PHP Code Sniffer errors. Props chriswiegman
- Properly document Elasticsearch version
- Abide by
exclude_from_search
instead ofpublic
when indexing post types. Props allan23 and ghosttoast. - Allow posts to be indexed with invalid date values. Props tuanmh
- Support
ep_post_sync_kill
filter in bulk indexing. Props Stayallive
Enhancements:
- Add blog id to
ep_index_name
filter. Props kovshenin - Support post caching in search
- Add recursive term indexing for heirarchal taxonomies. Props tuanmh
- Enable indexing of attachments
- Support fallback hosts in case main EP host is unavailable. Props chriswiegman
- Add
ep_retrieve_the_post
filter to support relevancy score manipulation. Props matthewspencer - Make search results filterable. Props chriswiegman
1.5.1 – 2015-07-06
Bug Fixes:
- Prevent notices from being thrown when non-existent index properties are accessed. This was happening for people how upgraded to 1.5 without doing a re-index. Props allan23
1.5 – 2015-06-25
Bug Fixes:
- Prevent direct access to any PHP files. Props joelgarciajr84
- Fixed fields not being loaded from ES. Props stayallive
- Fixed inclusive check in date_query integration. Props EduardMaghakyan
Enhancements:
- Add support for category_name WP_Query parameter. Props ocean90
- Support limiting sites in network wide commands. Props bordoni
- Add support for method to un-integrate WP_Query. Props kingkool68
- Support
cache_results
in WP_Query - Add action prior to starting WP-CLI index command
- Add missing headers to WP_CLI commands. Props chriswiegman
- Improve error reporting in bulk indexing during bad ES requests.
- Fix is_search check notice. Props allenmoore and allan23
- Added a filter to modify request headers. Props tuanmh
- Prevent bulk index from sending useless error emails. Props cmmarslender
- Add –offset parameter to cli indexing command. Stayallive
- Change the syncing hook to play better with plugins. Props jonathanbardo
- Support like query in post meta. Props tuanmh
- Sanitization fixes for PHPCS. Props mphillips
- Added filter to set default sort order. Props HKandulla
- MySQL DB completely removed from integrated ElasticPress WP Query. Props EduardMaghakyan and crebacz
1.4 – 2015-05-18
Bug Fixes:
- Duplicate sync post hooks separated. Props superdummy
- Don’t send empty index error emails. Props cmmarslender
- Remove default shard and indices configuration numbers but maintain backwards compatibility. Props zamoose
- Fix wrong author ID in post data. Props eduardmaghakyan
Enhancements:
date_query
and date parameters now supported in WP_Query. Props joeyblake and eduardmaghakyan- Make all request headers filterable
- Add EP API key to all requests as a header if a constant is defined. Props zamoose
- Add index exists function; remove indexes on blog deletion/deactivation. Props joeyblake
- Refactor wp-cli stats for multisite. Props jaace
- Index mappings array moved to separate file. Props mikaelmattsson
- Support meta inequality comparisons. Props psorensen
1.3.1 – 2015-04-09
- Support
date
in WP_Queryorderby
. Props psorensen
1.3 – 2015-02-03
- Support
meta_query
in WP_Query integration - Improved documentation. Each WP-CLI command has been documented
- Add
elasticsearch
property to global post object to assist in debugging ep_integrate
param added to allow for WP_Query integration without search. (Formally called ep_match_all)- Filter added for post statuses (defaults to
publish
). Change the sync mechanism to make sure it takes all post statuses into account. Props jonathanbardo - Bug fix: check if failed post exists in indexing. Props elliot-stocks
- Bug fix: properly check if setup is defined in indexing. Props elliot-stocks
- Bug fix: add WP_Query integration on init rather than plugins loaded. Props adamsilverstein
- Bug fix: Properly set global post object post type in loop. Props tott
- Bug fix: Do not check if index exists on every page load. Refactor so we can revert to MySQL after failed ES ping.
- Bug fix: Make sure we check
is_multisite()
if--network-wide
is provided. Props ivankruchkoff - Bug fix: Abide by the
exclude_from_search
flag from post type when running search queries. Props ryanboswell - Bug fix: Correct mapping of
post_status
tonot_analyzed
to allow for filtering of the search query (will require a re-index). Props jonathanbardo
1.2 – 2014-12-05
- Allow number of shards and replicas to be configurable.
- Improved searching algorithm. Favor exact matches over fuzzy matches.
- Query stack implementation to allow for query nesting.
- Filter and disable query integration on a per query basis.
- Support orderby
parameter in
WP_Query - (Bug) We don’t want to add the like_text query unless we have a non empty search string. This mimcs the behavior of MySQL or WP which will return everything if s is empty.
- (Bug) Change delete action to action_delete_post instead of action_trash_post
- (Bug) Remove _boost from mapping. _boost is deprecated by Elasticsearch.
- Improve unit testing for query ordering.
1.1 – 2014-10-27
- Refactored
is_alive
,is_activated
, andis_activated_and_alive
. We now have functionsis_activated
,elasticsearch_alive
,index_exists
, andis_activated
. This refactoring helped us fix #150. - Add support for post_title and post_name orderby parameters in
WP_Query
integration. Add support for order parameters.
1.0 – 2014-10-20
- Support
search_fields
parameter. Support author, title, excerpt, content, taxonomy, and meta within this parameter. - Move all management functionality to WP-CLI commands
- Remove ES_Query and support everything through WP_Query
- Disable sync during import
- Check for valid blog ids in index names
- Improved bulk error handling
- No need for
ep_last_synced
meta - No need for syncing taxonomy
- Improved unit test coverage
sites
WP_Query parameter to allow for search only on specific blogs
0.9.3 – 2014-09-26
Added:
* Better documentation surrounding WP_Query
parameters (props @tlovett1).
* Option to allow for using match_all
(props @colegeissinger for suggestion).
* Better tests for some WP_Query
parameters (props @tlovett1).
* Allow for manual control over search integration.
* Support for passing an array of sites to search against (props @tlovett1).
* Filter for controlling whether or not ElasticPress is enabled during a wp_query
request.
* Filter to allow adjusting which fields are searched (ep_search_fields
).
Changed:
* Prevented filtering WP_Query
in admin (props @cmmarslender).
* Updated tests to better conform to WordPress repo 5.2 compatibility (props @tlovett1).
* Made running re-indexing commands simpler and easier by adding support for a new --setup
flag on the index
command.
* Disable search integration during syncing.
Fixed:
* Bug that would cause a post to stay in the index when a post was unpublished.
* Bug that would cause site to be improperly switched after a wp_reset_postdata
while not in the loop.
* Bug that would cause EP to individually sync each post during an import – disabled syncing during import – requires a full re-index after import.
0.9.2 – 2014-09-11
Added:
* Wrapper method for wp_get_sites, added filter.
* Ability to change scope of search to other sites in network.
* tax_query support.
Changed:
* Aggregation filter update.
0.9.1 – 2014-09-05
Added:
* Action to allow for retrieval of raw response.
* Filter to retrieve aggregations.
* Pagination tests.
* ep_min_similarity and ep_formatted_args filters.
* ep_search_fields filter for adding custom search fields.
* Filter to allow for specific site selection on multisite indexing.
Changed:
* Adjust default fuzziness to .75 instead of .5.
Removed:
* Main query check on ep wp query integration.
0.9 – 2014-09-03
Added:
* Make labels clickable in admin.
* Setup plugin textdomain; POT file for translation; localize stray string in cron.
* Tests for is_alive function.
* search_meta key param support to ES_Query.
* Test WP Query integration on multisite setup.
* Flush and re-put mapping on admin sync request.
* WP Query integration.
Changed:
* Simplify sync.
* do_scheduled_syncs into do_syncs.
* Make config files static.
Removed:
* EP hidden taxonomy.
Fixed:
* Cron stuff.
* Statii.
* Type coercion in equality checks.
0.1.2 – 2014-06-27
- Only index public taxonomies
- Support ES_Query parameter that designates post meta entries to be searched
- Escape post ID and site ID in API calls
- Fix escaping issues
- Additional tests
- Translation support
- Added is_alive function for checking health status of Elasticsearch server
- Renamed
statii
tostatus
0.1.0 – Unknown
- Initial plugin