php - 根据各种过滤条件匹配特定广告

标签 php elasticsearch redis logic weblogic

我需要一些帮助,但我不确定该怎么做。
我正在运行eBay之类的分类网站。我的网站上有很多过滤器,例如您可以按价格,类别,城市,条件过滤广告。
假设我们有以下用例:

  • 用户可以使用过滤器
  • 过滤我的网站上的广告
  • 完成操作后,他可以保存那些过滤器,并在有人提交与这些过滤器匹配的广告时订阅推送通知。
  • 我将这些过滤器保存在该用户
  • 的数据库中
  • 在此示例中,假设我的网站有大约10万个活跃订阅。

  • 显然,第一步是攻击将代码保存到数据库中的某个位置。我对如何确定该特定广告是否与这些过滤器匹配存在疑问。
    我需要经过10万个订阅及其过滤器,才能知道哪个过滤器与已发布的广告匹配。对我来说听起来不太好,可能是100万个过滤器或更多。
    有人可以帮助我吗,或者至少可以指出正确的方向。
    这是基本版本。
    筛选条件:
  • 国家,县,市
  • 最低价格,最高价格
  • 条件(新,旧……)
  • 带有/不带有图片的
  • 广告

  • 用户A订阅了一组过滤器:
  • 英格兰,伦敦
  • 最低价格:200€最低价格:
  • X
  • X

  • 用户B订阅了一组过滤器:
  • 英格兰
  • 最大价格:500€
  • X

  • 用户C订阅了一组过滤器:
  • 德国
  • 最低价格:200€最低价格:
  • X
  • 有图片

  • 用户X提交了包含以下数据的广告:
  • 城市:伦敦
  • 价格:300€
  • 条件:新的

  • 在这种情况下,用户A和用户B需要获得推送通知,因为广告与其过滤器匹配。

    最佳答案

    可以做什么的非常高级的 View 。
    API:创建API getFilteredAds ,并传递请求:

  • 上下文信息(user_id等)
  • 过滤

  • 过滤器:
  • 在后端
  • 上保存用户过滤器
  • 点击过滤器用户界面可以调用API“getFilteredAds”

  • 处理中:
  • getFilteredAds可以基于所选过滤器从Elastic Search获取数据。
    (您可以使用任何模板工具来定义ES查询模板,并根据请求中提供的过滤器数据生成实际查询。)
  • 关于php - 根据各种过滤条件匹配特定广告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64098508/

    相关文章:

    node.js - 如何在socketio-redis管理的socketio进程集群中查找用户socket

    redis - 理解 Redis ServiceStack 示例的问题

    javascript - 使用提交按钮而不是 anchor 标记打开新链接

    php - YII2 - 如何从表单中获取字段值以进行搜索

    具有多个默认字段的 Elasticsearch query_string 查询

    elasticsearch - Elasticsearch :字符串数组上的完全匹配查询

    elasticsearch - 如何使Elasticsearch聚合仅创建1个存储桶?

    python - rqworker超时

    php - 是否可以使用 PHP 和 MySQL 读取/访问条形码扫描器值?

    php - 是否有 require_once 的 HTML 变体?