3.1.0 (June 29 2011)

New Features

ENGINE-502 New Word Query Support

The engine now supports a new easy-to-use and power text dimension query parser. The new parser is called the Word query parser because it uses word proximity as primary determinator of relevance. The Word query parser is now the default parser for the engine.

The Word query parser works with queries of one or more words. When more than one word appears in the query, the new parser tries to find all documents with any of the words. Documents with matches to all words will rank higher than documents with some of the words. Additionally, documents in which the words appear closes together are ranked higher.

The Word query parser also supports starts with searches on each word in the phrase.

ENGINE-395 Distance from Location is Now Available in Query Response

If a distance metric is used to determine relevance based upon distance from a point or polygon, this distance value is now available to the query response using the new calculate top-level request and response fields.

The request is created using the new calculate top-level request. The key used for the request is up to the developer. The result is then placed in a dictionary with the named key. This enables more than one distance metric to be calculated. Use distanceUnit to specify miles or kilometers for the calculation.

   "calculate": {
       "myDistanceKey": {
            "method": "distance",
            "longitude": -72,
            "latitude": 42

The response appears in the new calculate top-level response field. The distances are returned one value per item.

   "calculate": {
         [10, 20, 34.55, 29]


ENGINE-420 JSON Tool UI Improvements

The JSON tool now uses a more convenient table format to display properties and includes an improved UI.

ENGINE-206 Top-level Items Query Request Does not Require a Criterion

The engine has supported queries that retrieve items by their item id. Until this version, the query had to contain a dummy criterion referring to at least one dimension. This unnecessary restriction has been removed. To query items by item id, construct a query similar to this:

    "items": ["8291"],
    "pageSize": 10

ENGINE-432 Text Highlighting Works Across Property Boundaries

Using fieldPositionIncrementGap=0 allows customers to create complete paragraphs of text such that proximity phrase matching will find matches as though all of the text came from a single property. This allows customers to create a text dimension over address fields such as city, state and zipcode. Without the fieldPositionIncrementGap settings, it would be impossible to match any city to it’s state, e.g. New York City, NY.

When the query matched over property value boundaries, text highlighting did not appear. This version will now highlighting each portion of the properties that contributed to the text match.

Sample dimensions defining an address field with multiple properties whose values are to be considered as though they were written in a paragraph or other document.

<dimension id="freetext" type="fieldedText" fieldPositionIncrementGap="0">
    <field id="name"/>
    <field id="address" key="street_address,city,state,zip"/>

Behavioral Changes

ENGINE-480 Engine version is logged early in startup phase

The engine’s log file now displays the current engine version number before the engine has fully started. Previously, the engine version number was shown at the end of the startup process.

ENGINE-502 New Word Query Parser is the Default Query Parser

The legacy query parser is no longer the default query parser. Instead, the engine will use the new Word query parser.

Bug Fixes

ENGINE-457 Index page fails on engine startup

Previously, the Admin tool’s Indexes page failed if it displayed during engine startup.

ENGINE-476 NPE Applying Changesets

Fixed a situation where the changeset application process could create a null pointer when loading changesets.

ENGINE-514 NPE Indexing Text with doubleMetaphone

A null pointer exception could be thrown in certain cases when indexing a text dimension using double metaphone phonetic analysis.