Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB:在非常不同的对象集合中快速搜索_Mongodb_Search_Lucene_Full Text Search_Search Engine - Fatal编程技术网

MongoDB:在非常不同的对象集合中快速搜索

MongoDB:在非常不同的对象集合中快速搜索,mongodb,search,lucene,full-text-search,search-engine,Mongodb,Search,Lucene,Full Text Search,Search Engine,MongoDB的主要优点之一是能够在单个集合中维护不同结构的文档。它真的很棒,对很多任务都很有用 我正在做一个应用程序,应该搜索各种商品的一个非常大的列表。有几十种类型的项目,每个项目可以有几十个属性。我希望searСh尽可能灵活,并在数据库中快速执行搜索操作。我需要找出最好的storade数据模型/体系结构。 假设我有如下用户查询: 按其特定属性查找项目(例如,获取所有四轮驱动汽车) 查找具有特定属性的项(例如,获取所有红色的项) 一般来说,我会将问题表述为“我需要从数百个属性中查找项目”。也

MongoDB的主要优点之一是能够在单个集合中维护不同结构的文档。它真的很棒,对很多任务都很有用

我正在做一个应用程序,应该搜索各种商品的一个非常大的列表。有几十种类型的项目,每个项目可以有几十个属性。我希望searСh尽可能灵活,并在数据库中快速执行搜索操作。我需要找出最好的storade数据模型/体系结构。
假设我有如下用户查询:

  • 按其特定属性查找项目(例如,获取所有四轮驱动汽车)
  • 查找具有特定属性的项(例如,获取所有红色的项)
  • 一般来说,我会将问题表述为“我需要从数百个属性中查找项目”。也许我错了,让我知道。
    应用于Mongo集合的最大索引是64,我想我需要更多的道具来搜索,所以这种方法似乎不能解决我的问题。
    我考虑的备选方案是:

  • 除了保存所有商品数据的主要集合之外,创建 搜索时使用的每种类型的集合,例如CarsHelper 以车型、重量、型号、颜色等为属性 对每一个都进行了索引。这将解决#1而不是#2
  • 使用像Lucene这样的全文搜索引擎并存储所有属性 作为文本在那里
  • 在主集合中使用一些额外的字段来保存道具 以特定的方式创建,因此不需要创建64个以上的索引
  • 我认为有比这三个更多的选择。我肯定会想到它们,但如果您已经有了关于如何更好地组织数据的想法/链接/建议,我们将非常感谢您的帮助。

    谢谢大家!

    这是一个非常好的问题,如果您能分享一个解决方案,我将不胜感激(真的:)。也许综合指数能帮上一点忙。你能再详细一点吗?您一次搜索多少个属性?有些属性通常出现在查询中,而有些属性很少见吗?在数百个属性中,具有给定属性
    x
    的文档占多大比例?1%? 10%? 50%? 这里有很多选项供您选择,但我想在推荐任何东西之前,我需要更多关于这些属性以及如何使用它们的信息。