3.17 (August 28 2015)¶
Compatibility Changes¶
ENGINE-1024 Requested items that do no exist are no longer ignored¶
Requests that specify items and provide no search criteria no longer ignore the items that do not exist.
The query
{
"items": ["exists","missing"],
"properties": [],
"pageSize": 10
}
now returns
{
"itemIds": ["exists","missing"],
"datasetSize": 100,
"properties": [{"title":"this is an example"},{}]
}
instead of
{
"itemIds": ["exists"],
"datasetSize": 100,
"properties": [{"title":"this is an example"}]
}
ENGINE-851 New default normalDistances for distance based dimensions¶
Due to release 4.0 changing the default scoring precision from double to float (ENGINE-992) we’ve had to change the default normalDistance values for the distance based dimensions (integer, long, time, double, geoloc).
Here are the previous values and new current values.
type | was | now |
---|---|---|
integer | 2,147,483,647 (Integer.MAX_VALUE) | 1,000,000 (1e6) |
long | 1,000,000,000,000L (1e12) | 1,000,000 (1e6) |
time | 3153600000000 (100 * 365 days) | unchanged |
double | 1,000,000,000,000 (1e12) | 1,000,000 (1e6) |
geoloc | ~25k miles (circ of earth) | 1,000 miles (or km) |
If you were previously providing a value larger than 1,000,000 (1e6) then you will want to choose a new smaller value to retain the same quality of scoring.
As a reminder, normalDistance is usually configured as a dimension attribute and is automatically provided if you set both min and max dimension attributes.
With this change, it might be tricky to adjust current custom weighting to the new precision. If you experience issues with this transition, please reach out to us and we will be happy to work through them with you.
ENGINE-1021 Adds missing support for exactDistance to scalar ranges¶
Criterion over integer, long, double, and time dimensions that use ranges no longer ignore exactDistance when processing the ranges.
The query
{
"dimension": "example",
"value": "[10, 12) 50",
"exactDistance": 1
}
would previously detect 10, 11, 49, 50, and 51 as exact. It will now detect 9, 10, 11, 12, 49, 50, and 51 as exact. The scores are unchanged.
ENGINE-1014 Change default exactDistance for double dimensions¶
The default exactDistance for double dimensions has been changed from 1e-12 to 0.
Bug fixes¶
ENGINE-1018 More query test coverage¶
Adds extra unit test coverage for some query shapes that were incorrectly handled in release 4.0-beta-1. Thank you Sean for testing and isolating these.
ENGINE-1022 Cleanup default request character encoding¶
The engine now more sanely defaults to UTF-8 when reading HTTP request content if an encoding has not been explicitly specified. It previously relied on the embedded Jetty container’s default encoding for some entry points.
This does not affect entry points that consume binary data directly. In particular, XML is still treated as a binary stream and the encoding pulled from the preamble (defaulting to UTF-8 if not specified).
ENGINE-1015 Fixes item cache settings¶
The settings for the LRU Item Cache in the admin interface were broken in release 3.14. The size of the cache can now be changed again.
Removed Features¶
ENGINE-1020 Remove minRelevance and maxRelevance top-level overrides¶
Support for constraining the results by score has been removed. The top-level options minRelevance and maxRelevance are now ignored.
This change was necessary to for performance and maintainability of release 4.0. These options also interact poorly with facet isolation. This is a follow on from ENGINE-1011 minRelevance and maxRelevance now disable facet isolation.
ENGINE-1019 Remove FixedGzipInputStream¶
Removes obsolete workaround for decompressing GZIPed content that is larger than 2GB. The Java standard library has handled this correctly since Java 5 (JDK-4262583).
ENGINE-1023 Remove X-Request-Time HTTP response header¶
The engine no longer adds the custom X-Request-Time HTTP header to responses. Due to buffering and streaming issues it wasn’t always added.