加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 产品目录搜索 – NoSQL / MongoDB的良好用例?

发布时间:2020-12-16 06:37:16 所属栏目:asp.Net 来源:网络整理
导读:我们正在开发一个部署在AppHarbor上的ASP.NET MVC 3网站.该网站上至少有10,000种产品.用户可以基于标记系统搜索产品(例如,搜索“color = blue”加上“size = 10”加上“category = whatever”).因此,这个系统将在数据库读取和写入时点亮,我们主要关心的一个
我们正在开发一个部署在AppHarbor上的ASP.NET MVC 3网站.该网站上至少有10,000种产品.用户可以基于标记系统搜索产品(例如,搜索“color = blue”加上“size = 10”加上“category = whatever”).因此,这个系统将在数据库读取和写入时点亮,我们主要关心的一个问题是保持搜索功能的速度极快.为此,我们还希望结合一些缓存结果.

>我们认为这是一个使用NoSQL数据库的好用例(我们一直在关注MongoDB,将在https://mongohq.com上托管),我们是对还是错?
>如果我们使用MongoDB,我们应该研究哪些缓存策略?

干杯!

解决方法

MongoDB非常适合标记,因为它具有 multikeys功能

例如假设您创建这样的产品文档

{
    _id : 1,name : "Widget",tags: [
        {color : "blue"},{size : 10},{foo : "bar"}
    ]
}

然后,您可以在tags数组上创建索引,并为每个项目编制索引.因此,要查找所有蓝色的产品,您可以这样查询:

db.Products.find({tags : {color : "blue"}});

关于这一点的好处是每个项目都可以有一组完全不同的标签“属性”,查询将能够使用索引 – 有些可能有颜色和大小,有些可能有重量和高度.

关于缓存,在MongoDB中,有足够的RAM来保存你的工作集在内存中是很重要的(足以保存所有访问的数据和索引).这样,数据将保留在内存中,使查询非常快速.所以你可能不需要顶部的缓存技术.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读