建模数据以获得最大的可搜索性
Modeling data for maximum searchability
对此数据建模的最佳方式是什么:
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 数据库。
根据以上内容,我可以想象这是通过地图实现的,可能包含带有 map reduce/secondary indexes or by using Yokozuna (Solr) 的集合。
尽管如此,上面的数据集看起来更像是关系数据库而不是非SQL 数据库。对于中间的东西,您可能需要考虑 Riak TS (download),它类似于 KV,但在顶部有一个薄的 SQL 层。当前版本 (1.5.1) 有点旧,但我们计划在今年晚些时候推出一个改进的版本,提供额外的 SQL 功能。
对此数据建模的最佳方式是什么:
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 数据库。
根据以上内容,我可以想象这是通过地图实现的,可能包含带有 map reduce/secondary indexes or by using Yokozuna (Solr) 的集合。
尽管如此,上面的数据集看起来更像是关系数据库而不是非SQL 数据库。对于中间的东西,您可能需要考虑 Riak TS (download),它类似于 KV,但在顶部有一个薄的 SQL 层。当前版本 (1.5.1) 有点旧,但我们计划在今年晚些时候推出一个改进的版本,提供额外的 SQL 功能。