Я новичок в ElasticSearch, реализую поиск товаров, цены на которые рассчитываются на основе правил по запрошенному количеству. Например:
- От 1 до 5 единиц -> цена = единицы * X + Y
- От 6 до 10 единиц 8 $ -> цена = единицы * Z
- От 11 до 15 единиц 6 $ -> цена = единицы * Вт
(X, Y, Z, W могут быть константами или формулами)
Я пытался использовать безболезненный расчет цены во время запроса, но это было очень дорого, и для получения результата требовалось много времени.
Вторая стратегия, которую я применил, заключалась в том, чтобы определить базовую цену для каждого продукта, сохранить ее в elasticSearch, а затем применить формулу цены к каждому продукту (в nodejs) с учетом запрошенного количества. Этот подход был лучше с точки зрения производительности.
сложность, с которой я столкнулся сейчас, заключается в том, что мне нужно реализовать фильтр для цен с минимальным и максимальным значением, но я не могу фильтровать продукты, так как я рассчитываю цену после их получения. Я также не могу назначить цену во время индексации, потому что она зависит от запрошенного количества (n)
Знаете ли вы какое-либо быстрое и надежное решение, которое можно применить в тех случаях, когда цена продукта зависит от запрашиваемого количества и правил ценообразования, которые применяются к этому количеству?
Заранее благодарю за ваши комментарии :)