关于选择 SQL 或 NoSQL 搜索/持久化框架的建议
Advice required on choosing SQL or NoSQL framework for searching / persisting
我们正在尝试为我们正在为其构建 android 和 iPhone 客户端的工作门户构建后端。
这是一个基本字段,需要persisted/searchable。
需要存储用户元数据及其偏好。
- 用户所属类别(单值)
- 用户的技能。 (多值)
- text 和 latlng 中的用户位置
职位数据及其可搜索字段。
- 职位类别(单值)
- 工作技能(多值)
- 工作地点以文字和经纬度显示
一些基本用例:
当工作即将发布时,我们应该能够根据工作 category/skills 和 latlng.
获取附近位置的候选人列表
发布工作时,它必须匹配实际候选人并获取他们的元信息并坚持另一个 table/schema。
当一个新用户加入董事会时,为候选人获取 suitable 个职位并存储在另一个 table.
此数据将提供给 android/iphone 和网络仪表板以提供实时数据。
需要您的建议来考虑 HA、可扩展性、可靠性和成本等因素来选择框架。
要搜索,请尝试 Solr/Lucene。它具有极高的可扩展性、久经考验且成熟。
它们是具有不同优点和缺点的不同工具。两者都被大规模使用。对于小型项目,商业答案可能是 "Do what you know, because it will save you developer-hours."
请确保它不会让您陷入难以做出您想要的改变的境地。参见,例如,http://www.sarahmei.com/blog/2013/11/11/why-you-should-never-use-mongodb/
您可能希望将 MySql 和 Solr 用于不同的目的。对于 persisting
数据,最好使用 MySql 或类似数据库,因为它们将为您提供所有 ACID 属性。您应该 index
您的工作和用户数据 Solr/Lucene
可以在您的平台上实时服务 search
并提供 suggestion
自动完成功能。 Solr 还提供地理位置搜索,可用于匹配用户和工作。您始终可以在此基础上构建推荐功能。 CloudSolr 可以配置为 HA 和可扩展性。
我们正在尝试为我们正在为其构建 android 和 iPhone 客户端的工作门户构建后端。
这是一个基本字段,需要persisted/searchable。
需要存储用户元数据及其偏好。
- 用户所属类别(单值)
- 用户的技能。 (多值)
- text 和 latlng 中的用户位置
职位数据及其可搜索字段。
- 职位类别(单值)
- 工作技能(多值)
- 工作地点以文字和经纬度显示
一些基本用例:
当工作即将发布时,我们应该能够根据工作 category/skills 和 latlng.
获取附近位置的候选人列表
发布工作时,它必须匹配实际候选人并获取他们的元信息并坚持另一个 table/schema。
当一个新用户加入董事会时,为候选人获取 suitable 个职位并存储在另一个 table.
此数据将提供给 android/iphone 和网络仪表板以提供实时数据。
需要您的建议来考虑 HA、可扩展性、可靠性和成本等因素来选择框架。
要搜索,请尝试 Solr/Lucene。它具有极高的可扩展性、久经考验且成熟。
它们是具有不同优点和缺点的不同工具。两者都被大规模使用。对于小型项目,商业答案可能是 "Do what you know, because it will save you developer-hours."
请确保它不会让您陷入难以做出您想要的改变的境地。参见,例如,http://www.sarahmei.com/blog/2013/11/11/why-you-should-never-use-mongodb/
您可能希望将 MySql 和 Solr 用于不同的目的。对于 persisting
数据,最好使用 MySql 或类似数据库,因为它们将为您提供所有 ACID 属性。您应该 index
您的工作和用户数据 Solr/Lucene
可以在您的平台上实时服务 search
并提供 suggestion
自动完成功能。 Solr 还提供地理位置搜索,可用于匹配用户和工作。您始终可以在此基础上构建推荐功能。 CloudSolr 可以配置为 HA 和可扩展性。