Ranking-Mix

The ranking Mix setting allows user to influence (boost) the order of category listing and search results based on additional parameters.
Initially, the ranking mix has no effect on the results of a search or category call. They must first be explicitly enabled for categories and/or for search results.

❗️

Attention: As soon as the ranking mix is activated for categories, manual sorts from the product data ("category": has no i) will no longer taken into account.

Individual parameters can be weighted via slider on a scale from 0 to 10. A weighting of 0 means that the parameter has no influence.
The weighting of the parameters is linear, with the boosting factors added to each other:
[Search-Score] * [Boosting-Factor-1 + Boosting-Factor-2 + ...] = [New Score]


Available parameters are:

Ranking factorField nameData source(s)
Added to shopping cartmak_boost_norm_basketonly available with Makaira Tracking
Newmak_boost_norm_insert in OXID generated from OXINSERT
Profit Marginmak_boost_norm_profit_marginin OXID generated from OXBPRICE
Ratingsmak_boost_norm_ratingin OXID generated from OXRATING
Number of detail page viewsmak_boost_norm_view only available with Makaira Tracking
Revenuemak_boost_norm_revenue - Makaira Tracking
- in OXID generated from (OXVARMINPRICE+OXVARMAXPRICE)/2*OXSOLDAMOUNT
Number of salesmak_boost_norm_sold- Makaira Tracking
- in OXID generated from OXSOLDAMOUNT

📘

The maximum degree of influence of the respective ranking factor can also be changed by our support ([email protected])! By default, all ranking factors are configured equally strong.


Warning signs in the ranking-mix

We have implemented data checks for each field in the ranking mix. These checks verify whether there is any data present for each ranking controller and if there are discrepancies among your articles' data. You can refer to the table above to identify each field name. It's important to note that receiving a message indicating a "low amount of data" doesn't necessarily render the controller unusable. It may still be perfectly suitable for your specific use case


Calculation of Boost Fields

If you want to calculate the boost fields based on your own data you can always override the field listed in the table above by your own modifiers. The values in these fields have to follow some rules:

  • The value is a float number between 0 (lowest value) and 1 (highest value)
    If there is a field with higher numbers you want to have the boosting based on you have to map the values on a scale from 0 to 1
  • The values in the field should be evenly distributed over your product dataset
    If the value tends to be chunky, meaning for example a lot of values are close to 0 or close to 1 you should apply a logarithm for example

You can find the calculation as example in the Boosting Modifier in the default OXID Connect Implementation:
Boost Field Modifier: https://github.com/MakairaIO/oxid-connect/blob/stable/src/Makaira/Connect/Modifier/Product/BoostFieldModifier.php

Boost Field Utilities (calculation utils): https://github.com/MakairaIO/oxid-connect/blob/stable/src/Makaira/Connect/Utils/BoostFields.php


Order for out of stock items

With the option Show out of stock items at the end it is possible to influence the order of items on the search results page as well as the category and manufacturer pages and to give preference to available items.


Prioritization of boosting values

Boosting values can be either imported by the mak_boost_norm_* (see NDSJON) values or they are calculated by Machine Learning in case you have booked the Makaira Personalization.

In three cases the value from the machine learning will be taken instead of the value given on the document type.

  • The mak_boot_norm_ attribute is not set in the incoming data
  • The mak_boot_norm_ attribute is set to null
  • The mak_boot_norm_ attribute is set to an empty string

Example

{
  "id": 1,
  ....
  "mak_boost_norm_revenue": "",
  "mak_boost_norm_sold": 0.841922,
  "mak_boost_norm_null": null,
  ....
}
+--------+--------------+----------+
| id     | key          | value    |
+--------+--------------+----------+
| 992365 | norm_revenue | 0.804867 |
| 992365 | norm_sold    | 0.531379 |
| 992365 | norm_view    | 0.746732 |
| 992365 | norm_null    | 0.676548 |
+--------+--------------+----------+
{
    "id": 1,
     .... 
    "mak_boost_norm_revenue": 0.804867,  // value from ML as NDJSON holds an empty string
    "mak_boost_norm_sold": 0.841922,     // value from NDJSON as explicit given
    "mak_boost_norm_null": 0.676548,     // value from ML as NDJSON is null
    "mak_boost_norm_view": 0.746732      // value from ML as NDJSON attribute is not set
    ....
}

* The Ranking Mix is only available when you book the Makaira Search & Filter module.