0

我正在使用 Apache Solr 对我的 mongo 数据库进行索引和搜索。当我在 Solr 中索引一个实体时,我只保存该实体的 ID,以便我可以从 mongo 检索完整结果。问题是因为我只保存 ID,我不知道该 ID 在哪个集合中。所以,这就是我正在考虑的内容,并且输入任何这些选项都会很棒(或其他选项我没想到)

是否可以在所有集合中搜索以通过其 ID 找到适当的实体?

  • 如果这是可能的,它是否容易变得缓慢/效率低下?

由于上述方法对我来说似乎不是很好,是否可以创建一个复合索引,用于在适当的集合中查找适当的实体?

连同 ID,将集合的名称保存在 Solr 中,并将其与搜索结果一起返回

  • 虽然从效率的角度来看这似乎是最好的,但如果/当我需要更改集合的名称或添加新集合的名称时,我似乎可能会给自己制造问题

编辑: 我使用 mongo 的本机 ObjectId 作为 ID,因此 ID 在所有集合中应该是唯一的

4

1 回答 1

0

对于您问题的第一部分,请检查:Get a document in MongoDB without specified collection

是的,绝对可以创建一个复合索引。您可以创建类似 {type}+"--"+{id} 的内容来在您的应用中创建唯一索引。通常,您会知道要查询哪个集合以按 id 搜索。

于 2013-07-30T18:13:52.230 回答