In addition to the key to extension mapping this class also defines the field
name overloading scheme. ExtendableQueryParser uses the given
extension to split the actual field name and extension key by calling
splitExtensionField(String, String). To change the order or the key
/ field name encoding scheme users can subclass Extensions to
implement their own.

splitExtensionField

Splits a extension field and returns the field / extension part as a
Extensions.Pair. This method tries to split on the first occurrence of the
extension field delimiter, if the delimiter is not present in the string
the result will contain a null value for the extension key and
the given field string as the field value. If the given extension field
string contains no field identifier the result pair will carry the given
default field as the field value.

buildExtensionField

Builds an extension field string from a given extension key and the default
query field. The default field and the key are delimited with the extension
field delimiter character. This method makes no assumption about the order
of the extension key and the field. By default the extension key is
appended to the end of the returned string while the field is added to the
beginning. Special Query characters are escaped in the result.

buildExtensionField

Builds an extension field string from a given extension key and the
extensions field. The field and the key are delimited with the extension
field delimiter character. This method makes no assumption about the order
of the extension key and the field. By default the extension key is
appended to the end of the returned string while the field is added to the
beginning. Special Query characters are escaped in the result.