Types in Makaira

Types in Makaira are interesting for those who want to use their own fields as a base for searching and filtering. To provide this function the data has to be delivered with the correct type, this can be ensured by using type suffixes which give hints for the conversion which can also be named casting or mapping.

For example, if you want to be able to set filters by the slider, you should choose the numeric type float or int.

The string handling is a bit more complex as Makaira offers multiple string types like short-, long-fields, or fields with proper names. Only the right choice of type will deliver the desired result.

The table contains all types with a short explanation about the use case.

DatatypeType descriptionSuffixDescription
dateFields with date formatting_dateUsed for values that contains date.
floatFields with floating point numbers_floatRepresents numbers with decimal place.
intFields with integer values_intRepresents whole number that can be positive, negative, or zero, but not fraction.
boolFields with boolean value_boolBoolean is used when one of two possible values needs to be choosen. For example, True or False.
strFields with text content1._str_short
2._str_long
3._str_short_key
4._str_keyword
5. _split_number_string
1. Short description of a product
2. Long description of a product
3. Proper names such as Manufacturer name
4. Useful for special applications where case sensitive proper names are important.
5. Makes shure that new tokens are generated if there are number and letters in a word.
data storage onlyDeactivate typing_data_onlyUseful for large objects that are not to be searched and for example are only used for output in the frontend.
{  
  ...
  // type: *_date
  "marketRelease_date": "2015-01-01T12:10:30Z"
  // type: *_float
  "specialRate_float": 1.258 
  // type: *_int
  "usageScore_int": 150,
  // type: *_bool
  "hasConfiguration_bool": true,
  // type: *_str_short
  "shortDesc_str_short: "A shorter text for the record",
  // type: *_str_long
  "longDesc_str_long": "A very long text can be written",
  // type: *_str_short_key
  "bundleManufacturer_str_short_key": "Bertrand",
  // type: *_str_keyword
  "bundle_str_keyword": "Probierpaket für Einsteiger",
  // type: *_data_only
  "bundle_data_only": {
    "bundleId": 49625,
    "options": {
      "101": "Glas",
      "102": "PVC",
      "103": "Wood"  
    },      
  },
  ... 
}

Other systems

🚧

Please be aware that some functionalities will not work when you do not use attributes, attributeStr, attributeInt, attributeFloat (see benfits of attributes ... )