我正在做一个 web 项目,更多的是我在考虑数据层的设计,我认为它的很大一部分可以直接从 Solr 中使用。
例如,在 MongoDB 中,分面和计数操作代替了 mapreduce、循环计数或 $inc。
Solr 被称为“搜索”解决方案,但正如我所说,它在我看来更像是“数据库”解决方案。
我对 Solr 和数据库解决方案之间的重叠感到“困惑”。
在生产中类似地使用它的人有什么建议吗?
谢谢, 西尼萨
最佳答案
Solr 用于搜索。它不是设计为像普通数据库那样具有弹性或可靠的数据源,也不能处理数据库可以处理的关系类型。例如,无法指定外键或强制约束。
Solr 不像 mongoDB 那样支持“嵌套”数据类型。例如。在文档数据库中,您可以:
{
id: 123,
title: "cat toy stores",
stores: [
{
name: "cats'n'stuff",
address: "123 cat street"
},
{
name: "the catteria",
address: "321 tail lane"
}
]
}
但是 Solr 虽然 Solr 支持多值字段,但它不能表示 name
和 address
之间的连接,所以如果这些是给定实体的字段,你会最终得到以下内容:
{
id: 123,
title: "cat toy stores",
store-names: [
name: "cats'n'stuff",
name: "the catteria"
],
store-addresses: [
address: "123 cat street",
address: "321 tail lane"
],
}
关于mongodb - 我可以使用 Solr 而不是 MongoDB 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9422389/