Skip to main content
Version: 2026.0

RangeTerm

A range term for the index search. As all term typs this type supports the standard functions for setting the field name (entity and index) and the search weighting (boost). A range term defines a search for a range of values for a field (a range with an upper limit and a lower limit). The query matches documents whose values fall within the range. Range queries can include or exclude the upper and lower limits. Sorting is lexicographically, except for numeric fields. The following range term corresponds, for example, to all documents whose zip code field (zip) has a value between 84000 and 85000 inclusive. indexsearch.createRangeTerm(84000, 85000).setEntityField("entity.ZIP") ( translates to zip_value:[84000 TO 85000] ) A range term allows to:

  • Specify the start (upper limit) of the range via setRangeStart(pInt). An unlimited 'upper limit' can be defined by setting the start to null, e.g. indexsearch.createRangeTerm(null, "foo") translates to [* TO foo]. This will match all terms lexicographically before 'foo', including 'foo'.

  • Specify the end (lower limit) of the range via setRangeEnd(pInt). An unlimited 'lower limit' can be defined by setting the end to null, e.g. indexsearch.createRangeTerm("foo", null) translates to [foo TO *]. This will match all terms lexicographically after 'foo', including 'foo'.

  • Exclude or include the start (upper limit) from the search. This can be specified using the setIncludeStart(pBoolean) function of the range term. Use true to include the border and false to exclude it. The borders (start and end) are included by default.

  • Exclude or include the end (lower limit) from the search. This can be specified using the setIncludeEnd(pBoolean) function of the range term. Use true to include the border and false to exclude it. The borders (start and end) are included by default.

NOTE: Do not add unescaped quoted values (phrases), multiple values/words separated by whitespaces (phrases or groups), or values with unescaped wildcards (* and ?). This will result in an invalid configuration that can not be searched or returns unexpected results. The term object must be added to an IndexPatternConfig or a group term in order to create an index search pattern.

Methods​

getBoost​

getBoost(): number

Returns the boost factor for this therm. The index search provides the relevance level of matching documents based on the terms found. Boosting allows you to control the relevance of a result document by boosting its term. The higher the boost factor, the more relevant the term will be. The default boost factor for each term is 1.0. The boost factor must always be a positiv value grater the 0.0.

Returns​

number

The boost factor of this term.


getEntityField​

getEntityField(): string

Returns​

string

The defined entity field in which to search for the value. null if not set.


getIndexField​

getIndexField(): string

Returns​

string

The defined index field in which to search for the value. null if not set.


getRangeEnd​

getRangeEnd(): string

Returns the end (lower limit) of the range term. null is returned if no end (lower limit) was defined.

Returns​

string

The end (lower limit) of the range term.


getRangeStart​

getRangeStart(): string

Returns the start (upper limit) of the range term. null is returned if no start (upper limit) was defined.

Returns​

string

The start (upper limit) of the range term.


isIncludeEnd​

isIncludeEnd(): boolean

Returns if the end (lower limit) should be excluded or included from the search. The borders (start and end) are included by default.

Returns​

boolean

true if the end (lower limit) should be included.


isIncludeStart​

isIncludeStart(): boolean

Returns if the start (upper limit) should be excluded or included from the search. The borders (start and end) are included by default.

Returns​

boolean

true if the start (upper limit) should be included.


setBoost​

setBoost(pBoost): RangeTerm

Specifies the boost factor for this therm. The index search provides the relevance level of matching documents based on the terms found. Boosting allows you to control the relevance of a result document by boosting its term. The higher the boost factor, the more relevant the term will be. The implicit default boost factor for each term is 1.0. To increase the relevance specify a value greater then 1.0, e.g. 1.5. To decrease the relevance specify a value lower then 1.0, e.g. 0.5. The boost factor must always be a positiv value grater the 0.0.

Parameters​

pBoost
number

the boost factor of this term.

Returns​

RangeTerm

setEntityField​

setEntityField(pEntityField): RangeTerm

Specifies the entity field in whose corresponding index field to search for the value. If not set, the value of the term is searched in all search fields specified in the IndexQuery. The names of the entity field must start with the defining entity, e.g. person_entity.FIRSTNAME. You can specify whether the index field defined for value or displayValue should be used, e.g. person_entity.FIRSTNAME.displayValue. If not specified, the index field defined for value is returned. The index field is looked up when calling searchIndex. The search fails if no index field can be determined for the specified entity field.

Parameters​

pEntityField
string | number | boolean

the name of the entity field.

Returns​

RangeTerm

setIncludeEnd​

setIncludeEnd(pIncludeEnd): RangeTerm

Specifies if the end (lower limit) should be excluded or included from the search. Use true to include the border and false to exclude it. The borders (start and end) are included by default.

Parameters​

pIncludeEnd
boolean

true if the end (lower limit) should be included.

Returns​

RangeTerm

setIncludeStart​

setIncludeStart(pIncludeStart): RangeTerm

Specifies if the start (upper limit) should be excluded or included from the search. Use true to include the border and false to exclude it. The borders (start and end) are included by default.

Parameters​

pIncludeStart
boolean

true if the start (upper limit) should be included.

Returns​

RangeTerm

setIndexField​

setIndexField(pIndexFieldName): RangeTerm

Specifies the index field in which to search for the value. If not set, the value of the term is searched in all search fields specified in the IndexQuery.

Parameters​

pIndexFieldName
string | number | boolean

the name of the index field.

Returns​

RangeTerm

setRangeEnd​

setRangeEnd(pEnd): RangeTerm

Specifies the end (lower limit) of the range term. An unlimited 'lower limit' can be defined by setting the end to null, e.g. indexsearch.createRangeTerm("foo", null) translates to [foo TO *]. This will match all terms lexicographically after 'foo', including 'foo'.

Parameters​

pEnd
string | number | boolean

The end (lower limit) of the range term.

Returns​

RangeTerm

setRangeStart​

setRangeStart(pStart): RangeTerm

Specifies the start (upper limit) of the range term. An unlimited 'upper limit' can be defined by setting the start to null, e.g. indexsearch.createRangeTerm(null, "foo") translates to [* TO foo]. This will match all terms lexicographically before 'foo', including 'foo'.

Parameters​

pStart
string | number | boolean

The start (upper limit) of the range term

Returns​

RangeTerm

Example​

<code>import("system.indexsearch");

// creates a new range term
// '[84000 TO 85000]'
var term = indexsearch.createRangeTerm("84000", "85000");

// Excludes both borders form the search
// '{84000 TO 85000}'
term.setIncludeStart(false)
.setIncludeEnd(false);

// Creates a range term with an open "upper limit".
// '[* TO foo]'
term = indexsearch.createRangeTerm(null, foo);

// Defines an open 'lower limit'.
// '[* TO *]' -&gt; works like a search all query '*:*'
term.setRangeEnd(null);

// specifies a field and a boost for the term.
// 'field_value:[* TO *]^1.3'
term.setEntityField("entityName.FIELD.value")
.setBoost(1.3);

var patternConf = indexsearch.createPatternConfig().or(term);
</code>