对这些数据建模的最佳方法是什么:
public class Item {
Double price;
String geoHash;
Long startAvailabilty; // timestamp
Long endAvailabilty; // timestamp
Set<String> keywords;
String category;
String dateCreated; // iso date
String dateUpdated; // iso date
Integer likes;
Boolean isActive;
}
因此,可以查询和搜索ff:
- 价格范围
- 字符串"以";查询(地理散列搜索(
- 时间戳范围(类似于价格范围(
- 关键字搜索(从一组字符串中搜索(
- 平等(适用于类别等(
- ISO日期字符串搜索
- 布尔搜索(搜索w/c一个处于活动状态(
用于Riak KV数据库。
根据以上内容,我可以想象这是通过映射实现的,可能包含具有映射reduce/辅助索引的集,或者通过使用Yokozuna(Solr(实现的。
尽管如此,与非SQL数据库相比,上面的数据集看起来更像是关系数据库中的数据集。对于中间的东西,你可能想考虑Riak TS(下载(,它类似于KV,但上面有一个薄的SQL层。目前的版本(1.5.1(有点旧,但我们计划在今年晚些时候推出一个改进版本,提供额外的SQL功能。