当收集未知时,按id选择

时间:2013-07-30 17:41:50

标签: mongodb solr4

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

是否可以搜索所有馆藏以通过其ID找到合适的实体?

  • 如果可能的话,是否容易出现缓慢/低效的情况?

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

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

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

修改 我正在使用mongo的本地ObjectId作为ID,因此所有集合中的ID应该是唯一的

1 个答案:

答案 0 :(得分:0)

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

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