小编Lau*_*ney的帖子

在App Engine中查询Data Store的最有效方法

我有一个数据存储,其中包含大约150,000个实体.当我使用过滤器查询商店时,我的查询真的很慢.我的结构是完全平坦的,即每个实体都是彼此的兄弟.

1:使用GQL代替过滤器更好吗?

2:这不是Data Store的最佳用例,我应该使用SQL数据库吗?

这是我的代码示例:

// Look for a buy opportunity
dateFilter = new FilterPredicate("date", FilterOperator.EQUAL, dt);
scoreFilter = new FilterPredicate("score", FilterOperator.LESS_THAN_OR_EQUAL, 10.0);
safetyFilter = new FilterPredicate("score", FilterOperator.GREATER_THAN_OR_EQUAL, -1.0);
mainFilter = CompositeFilterOperator.and(dateFilter,scoreFilter,safetyFilter);
q = new Query("StockEntity",stockKey).setFilter(mainFilter);
q.addSort("score", Query.SortDirection.ASCENDING);

stocks = datastore.prepare(q).asList(FetchOptions.Builder.withLimit(availableSlots));
Run Code Online (Sandbox Code Playgroud)

更多细节:

  1. 150,000个记录,分为500个股票,每个股票约300个记录,日期范围内每天一个.

  2. 如上所述查询,其中传递了特定日期,并且基于"得分"有效地过滤了500个股票,期望返回的记录数量在10到20之间需要超过30秒才能完成,在我的开发机器.

还没有尝试推动生产,但我想我会尝试下一步 - 我认为不会有巨大的差异.我的开发机器是一个相当高的规格iMac.

java google-app-engine google-cloud-datastore

6
推荐指数
1
解决办法
1157
查看次数

在 HTML5 视频的时间轴上显示章节标记?

如何在 Video.js 中的时间轴上显示章节标记?[或任何其他玩家,就此而言]

看看这里:laurencemoroney.azurewebsites.net/smf/videojstest.html

我向网站添加了一个 WebVTT 文件,可在此处查看:laurencemoroney.azurewebsites.net/smf/test1.vtt

我在我的播放器上使用了标签,如下所示:

<track kind="chapters" src="test1.vtt" srclang="en" label="English" default="default"></track>
Run Code Online (Sandbox Code Playgroud)

我能得到的最好结果是在 Safari 上,当视频到达时间轴上的该点时,我只显示章节名称。

那么,Video.js 有没有一种方法(或皮肤)可以在章节时间轴上向我显示凹口,并允许我单击它们以跳转到该章节?

或者,是否有其他播放器支持此功能?

html video timeline video.js

5
推荐指数
1
解决办法
4498
查看次数