Reputation: 1144
Requirements
Must Have
Optional
Not Required
Query patterns
{
"item_id": "1234",
"brand": "adidas",
"average_price": 123,
"rate_of_sale": 123,
"visual information": {
"img_url": "http://imgsdsd",
"color": "red"
}
}
Upvotes: 0
Views: 49
Reputation: 36
Since you want Horizontally scalability, Transactional store like Mysql doesn't work.
Since you want composite indices, key value stores like Redis, Aerospike and extended key values like HBase, Cassandra can be eliminated.
If you have many composite indices, MongodB is inefficient.
Elastic search or Solr supports all the use cases(except atomic bulk update)although this can be solved by using aliases if you are updating the entire index.
Solr is generally efficient in updating the document multiple times.
You can also consider using Mysql and do application level sharding if the number of composite indices are not many.
https://db-engines.com/en/ranking is a good site to compare datastores.
Upvotes: 1