Releases: 10up/ElasticPress
ElasticPress 1.7
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)meta.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
Version 1.6.2
This release fixes a few things missed in 1.6.1. 1.6.2 fixes ALL compatibility issues with Elasticsearch 2.0 and should be completely backwards compatible with 1.7.x. Specifically, this version:
- Removes
fuzzy_like_this
query and usesmulti_match
instead. - Uses string instead of array for post type term when there is only one term.
Version 1.6.1
This is a quick bug fix version to account for breaking changes in Elasticsearch 2.0.0. Specifically, the mapping has been adjusted like so:
- Removes the fields field type from object typed fields as they should be called properties.
- Remove path from object field types.
Version 1.6
Version 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
Version 1.5.1
A quick bug release version.
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
Version 1.5
This version includes 16 enhancements and 3 bug fixes across a total of 16 contributors. Only half of these contributors actually work for 10up! The focus of this version is performance. Most notably, ElasticPress queries now completely bypass MySQL yielding huge benefits. In the past ElasticPress was pulling from Elasticsearch but filling in some blanks with MySQL. ElasticPress queries also support the cache_results
parameter for storing pulled posts in the object cache.
Here is a full list of version changes:
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
Version 1.4
Changelog
This version contains a number of bug fixes and small enhancements. The focus of this version is date query support. New date features will not work unless you do a reindex (wp elasticpress index --setup).
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.
Version 1.3.1
Changelog:
- Support
date
in WP_Queryorderby
.
Version 1.3
- 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
Version 1.2
- 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 inWP_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.