【发布时间】:2020-07-26 10:37:42
【问题描述】:
假设我们有一个可以包含 50-60 个字段的文档。例如:
{
"priceCurrency": "USD",
"price": "119.99",
"priceValidUntil": "2020-11-05",
"brand": "Acme",
"logo": "http://www.example.com/logo.png",
"name": "WidgetPress",
"category": "Widgets",
"image": "http://www.example.com/image.jpg",
"description": "This is an excellent widget with 21 features and 4 colors."
}
现在,在这 60 个字段中,我们可以查询 20-25 个字段。所以这意味着我们需要所有这些字段的索引。
在这些字段上形成的查询可以有相等和不等运算符。查询也可以有 AND/OR/NOT 运算符。
将没有全文搜索要求。
对于这种情况,首选 ElasticSearch 还是 MongoDB?
我在一篇文章中读到,在 mongo 中支持超过 5 个索引可能会使写入变慢。所以在这种情况下,应该首选 ES。
我们的数据大约为 200 GB。 RPS 将是 20,000。`
编辑 Qs - 只是想知道 ScyllaDB 对这个用例有意义吗?
【问题讨论】:
-
我不认为这个说法是真的
more 5 than indexes in mongo could make writes slow。话虽如此,我认为您可以在mongoDB和Elasticsearch中搜索特定字段。但是Elasticsearch提供了更多功能,例如hot-warm架构、轻松扩展等。查看每个数据库(我不应该将弹性称为数据库)提供的功能,看看适合您的预算等。 -
使用代码块,sn-ps用于css/html/javascript,见编辑帮助。
标签: mongodb elasticsearch database-design scylla