【问题标题】:Advice required on choosing SQL or NoSQL framework for searching / persisting [closed]关于选择用于搜索/持久化的 SQL 或 NoSQL 框架的建议 [关闭]
【发布时间】:2015-08-26 08:34:13
【问题描述】:

我们正在尝试为 Job Portal 构建后端,我们正在为其构建 android 和 iPhone 客户端。

这是一个需要持久化/可搜索的基本字段。

  1. 需要存储用户元数据及其偏好。

    • 用户所属的类别(单值)
    • 用户的技能。 (多值)
    • 文本和 latlng 中的用户位置
  2. 职位数据及其可搜索字段。

    • 职位类别(单值)
    • 工作技能(多值)
    • 在文本中以及在 latlng 中的工作位置

一些基本用例:

  1. 当即将发布职位时,我们应该能够根据职位类别/技能和纬度获取附近位置的候选人列表。

  2. 发布职位时,它必须匹配实际候选人并获取他们的元信息并保存在另一个表/模式中。

  3. 当新用户加入董事会时,为候选人获取合适的工作并存储在另一个表中。

这些数据将提供给 android/iphone 和 web 仪表板以提供实时数据。

在选择框架时需要您的建议,考虑到 HA、可扩展性、可靠性和成本等因素。

【问题讨论】:

    标签: java mysql sql solr nosql


    【解决方案1】:

    您可能希望将 MySql 和 Solr 用于不同的目的。对于persisting 数据,最好使用MySql 或类似数据库,因为它们会为您提供所有ACID 属性。您应该将您的工作和用户数据index 发送到Solr/Lucene,它可以在您的平台上实时提供search,并提供suggestion 用于自动完成功能。 Solr 还提供地理位置搜索,可用于匹配用户和工作。您始终可以在此基础上构建推荐功能。 CloudSolr 可以配置为实现高可用性和可扩展性。

    【讨论】:

    • 感谢您的 cmets abhishek。
    【解决方案2】:

    对于搜索,请尝试Solr/Lucene。它具有极强的可扩展性、久经考验的成熟度。

    【讨论】:

      【解决方案3】:

      它们是具有不同优点和缺点的不同工具。两者都被大规模使用。对于小型项目,商业答案可能是“做你知道的,因为它会节省你的开发时间。”

      请确保它不会让您陷入难以做出改变的境地。参见,例如,http://www.sarahmei.com/blog/2013/11/11/why-you-should-never-use-mongodb/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-05
        • 1970-01-01
        • 2013-09-10
        • 1970-01-01
        • 2016-07-10
        相关资源
        最近更新 更多