Система классификации продуктов на основе правил - PullRequest
0 голосов
/ 17 апреля 2019

У меня есть приложение для управления продуктами. В приложении у меня есть около 30000 продуктов с около 80 атрибутами каждый, что составляет в общей сложности более 2000 различных атрибутов (некоторые простые, например, логические, а другие, например, enum). Я хочу создать функцию, позволяющую создавать сложные фильтры, образованные последовательностью правил, и возвращать продукты, которые соответствуют правилам, и то, какое правило заставляет продукт проходить фильтр.

Например:

R1 Products where category = chair
And
R2 Products where colour = red
Or
R3 Products where colour = blue
And
R4 Products where material = wood

Return example { chair1(R1,R2,R4), chair2 (R1,R3,R4)...}

У меня нет ограничений ни по структуре базы данных, ни по технологии (я предпочитаю Postgres), потому что я могу регенерировать базу данных любым способом, который мне нужен. И у меня нет больших временных ограничений, так как фильтры будут выполняться в фоновом режиме, и я сообщу пользователю, когда будут готовы результаты.

Какой подход может иметь смысл для решения этой задачи?

Я читал о деревьях решений, но, может быть, я слишком много решение ...

Спасибо

...