MongoDB:快速搜索一组非常不同的对象

时间:2014-11-30 18:22:45

标签: mongodb search lucene full-text-search search-engine

嗯,MongoDB的主要优点之一是能够在单个集合中维护不同结构的文档。对任务数量而言,它确实非常有用。

我正在制作一个应该在各种商品的大清单中搜索的应用程序。有几十种类型的物品,每个物品都有几十种属性。我希望searсh尽可能灵活,并且非常快速地在数据库中执行搜索操作。我需要找出最好的storade数据模型/架构 假设我有以下用户查询:

  1. 按特定属性查找项目(例如,获取所有4WD的车辆)
  2. 查找具有特定属性的项目(例如,获取红色的所有内容)
  3. 一般来说,我会将问题说明为“我需要通过数百个属性查找项目”。也许我在这里错了,请告诉我 要应用于Mongo集合的最大索引是64,我想我需要更多道具来搜索,所以这种方式似乎无法解决我的问题。
    我想到的替代方案是:

    1. 除了包含所有商品数据的主要收藏品外,还要创建 搜索时使用的每种类型的集合,例如CarsHelper 有汽车类型,重量,型号,颜色等作为属性和那里 是每个人都有的索引。这将解决#1而不是#2。
    2. 使用像Lucene这样的全文搜索引擎并存储所有属性 作为那里的文字。
    3. 在主集合中使用一些可容纳道具的额外字段 以特定方式,因此不需要创建64个以上的索引。
    4. 我认为有比这三种更多的选择。我肯定会想到它们,但是如果你已经有了关于如何以更好的方式组织数据的想法/链接/建议,那么你将不胜感激。 谢谢!

0 个答案:

没有答案