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.