2.2.13.3.1.2 FREETEXT Predicate

The FREETEXT predicate is the recommended predicate to find items that contain tokens and phrases and calculate the value of the Rank property of the matching items. Its basic syntax is as follows:

 …FREETEXT(property, freetext_condition, language)

The predicate MUST be true if the given property matches the conditions specified in the freetext_condition component. The protocol server MUST allow the protocol client to specify a property to search over. The protocol server MUST allow the name of a property, or "*", or "ALL" for all full-text searchable properties, or "DEFAULTPROPERTIES". The client SHOULD set this to "DEFAULTPROPERTIES", but it can set this to any of the other values the protocol server allows.

It is an implementation detail which properties the protocol server searches over if "DEFAULTPROPERTIES" is specified. If the property is not specified, the protocol server MUST behave as if "DEFAULTPROPERTIES" had been specified. If the specified property is not a full-text searchable property, the predicate MUST evaluate to false. The optional language component specifies the language that the protocol server SHOULD evaluate the freetext_condition component in. If evaluation in the specified language is not possible the protocol server SHOULD use any closely matching language, the system default, or a language neutral evaluation. If no language is given, the protocol server SHOULD revert to a reasonable default, such as the default language of the underlying operating system.

 freetext-predicate              =   "FREETEXT" *ws "(" *ws [freetext-property *ws "," *ws] freetext-condition *ws ["," *ws lcid *ws] ")"
 freetext-property               =   identifier / alias-name / "DEFAULTPROPERTIES" / "ALL" / "*"
 freetext-condition              =   text-expression