我有:
我需要:
我应该选择哪种方法?
方法1(二级指标):
方法2(Java工作 - 暴力):
在下一次迭代期间更新缓存
// Paginate throuh data...
String page = null;
do {
PagingState state = page == null ? null : PagingState.fromString(page);
PagedResult<DataRow> res = getDataPaged(query, status, PAGE_SIZE, state);
// Iterate through the current page ...
for (DataRow row : res.getResult()) {
// Skip empty titles
if (row.getTitle().length() == 0) {
continue;
}
// Find match in title
for (String k : keywords) {
if (k.length() > row.getTitle().length()) {
continue;
}
if (row.getTitle().toLowerCase().contains(k.toLowerCase()) {
// TODO: SAVE match
break;
}
}
}
status = res.getResult();
page = res.getPage();
// TODO: Wait here to reduce DB load
} while (page != null);
问题
答案 0 :(得分:2)
更好的方法是使用像SolR我们的ElasticSearch这样的搜索引擎。全文搜索是他们的专长。您可以轻松地将数据从cassandra转储到Elasticsearch,并在ElasticSearch之上实现您的java作业。
修改强>
使用Cassandra,您可以将结果查询请求为JSON,并使用Elasticsearch&#39;说&#39;仅在JSON中,因此您可以非常轻松地传输数据。