多属性搜索/筛选怎么实现?

黄鹏宇 243 2023-08-25

举例来说,对于商品A,拥有自身的标题,商品描述,图片Url List等属性
商品拥有SKU,假设SKU包含id, 规格、价格、颜色,
商品拥有产地,包含id, 地址,厂商名
商品拥有评论,包含id, 评论用户,评论内容
商品拥有评分,包含id, 评分用户,分数,评分时间

现在需要筛选,比如筛选表单为

  • keywords:模糊搜索商品标题和描述
  • SKU: [id List]
  • 评论:商品的评论个数 > 某个值
  • 评分:平均分 > < = 某个值
FilterForm : {
keywords: xxx,
skuList:[1,2,3], // sku的ID列表
commentCount: 10,
commentPredicate: "more than",
avgScore: 3,
avgScorePredicate: "less than"  // 谓词
}