Starts With Algorithm Implementation Details

Equivalent to '* term* *' - in other words - a trailing wildcard on a term (but no leading wild card) and the term can appear at any position.

Algorithm:

The Starts With search has the following characteristics:

Example of use:

The following examples are based on the Automobiles coding scheme.

Example 1:

Search string: automob

Lucene query: +untokenizedLCPropertyValue:automob* literal_propertyValue:automob^50.0

Result: 1 result

Example 2:

Search string: Car (with special) charaters!

Lucene query: +untokenizedLCPropertyValue:car (with special) charaters!* ((+literal_propertyValue:car +literal_propertyValue:(with +literal_propertyValue:special) +literal_propertyValue:charaters!)^50.0)

Result: 1 result

Associated JUnits:

Junits tests can be found here: https://github.com/lexevs/lexevs/blob/master/lbTest/src/test/java/org/LexGrid/LexBIG/Impl/function/query/lucene/searchAlgorithms/TestStartsWith.java