GAE 随机获取实体
有时我们需要随机地获取数据记录(实体),比如博客程序中的“随机文章”的实现。
目前 GAE 并没有 API 可以直接获取随机实体,要实现这样的需求我们只能自己想办法了 :-)
在 stackoverflow 上也有人提过该问题,总结如下:
- Generate and store a random number on your entities as you create them, then pick a random number and look (via a query) for the closet record(s) to it.
- Implement some mechanism to ensure your entity ids are "densely" populated, then fetch within the known range using keys.
- Periodically generate random lists of the entities and return entities from those lists. This may take the form of a stack that entities are popped off of, or as actual lists that are returned.
目前 B3log Solo 在处理“随机阅读”上采用的是方法一,即在每个文章实体上添加一个属性保存 0-1 的随机浮点数。
在获取随机文章时生成一个 0-1 的随机数(mid)作为查询条件,以此查询条件作为边界(0 <= mid <=1)来过滤实体保存的随机值属性。
这个方法基本可以达到随机的效果了,为了让随机的效果更动态一点,我们可以考虑经常更新文章实体中的随机浮点值:
- 访问文章时(即在更新文章浏览次数时一并更新该文章的随机浮点值)
- 后台定时任务(获取一定数量的随机文章然后更新它们的随机浮点值)
- 用户做文章更新时
加上以上处理后,随机的效果比较好了 :-)
转载于:https://www.cnblogs.com/lanzhi/archive/2011/01/10/6468264.html
GAE 随机获取实体相关推荐
- 微信小程序云数据库触底分页加载,下拉无限加载,第一次请求数据随机,随机获取数据库的数据
效果图 小程序云开发分页加载代码 <!--pages/chatList/chatList.wxml--> <view class="pageTitle">家 ...
- mysql每组随机一条_MySql分组后随机获取每组一条数据的操作
思路:先随机排序然后再分组就好了. 1.创建表: CREATE TABLE `xdx_test` ( `id` int(11) NOT NULL, `name` varchar(255) DEFAUL ...
- mysql高效率写法_mysql高效率随机获取n条数据写法
今天做项目遇到这个问题,本来想用mysql自带的随机函数来实现,但是想到这样做功能是实现了,但是效率真的好差!一下子想不到好的方法,就去网上找了一下,记录下来,好好研究学习一下. ID连续的情况下(注 ...
- 使用 SQL 语句从数据库一个表中随机获取一些数据
以前从一个表中随机获取数据的时候,都是先把数据读取到来, 然后再在程序中来随机抽取一部分数据, 今天告诉大家一种使用 SQL 语句的方法来随机获取一部分数据 SQL Server: -- 随机获取 1 ...
- qtp web随机获取下拉框的值
1.先顶一个随机获取数的函数 Function GetList(i) randomize GetList=RandomNumber(0,i) End Function 2.以下就是纯代码了 ...
- Hibernate随机获取指定范围内的指定条目的记录
下面这段代码是我最近写项目用到的,功能是查找用户列表 限制条件是:指定用户周边.条数限制.随机获取.指定范围 public List<User> listUserByLocation(St ...
- mysql 随机分组_MySql分组后随机获取每组一条数据的操作
MySql分组后随机获取每组一条数据的操作,数据,效率,时间,李四,条数 MySql分组后随机获取每组一条数据的操作 易采站长站,站长之家为您整理了MySql分组后随机获取每组一条数据的操作的相关内容 ...
- Oracle 随机获取N条数据
Oracle 随机获取N条数据 当我们获取数据时,可能会有这样的需求,即每次从表中获取数据时,是随机获取一定的记录,而不是每次都获取一样的数据,这时我们可以采取Oracle内部一些函数,来达到 ...
- java map 随机取值_随机获取一个集合(List, Set)中的元素,随机获取一个Map中的key或value...
利用Java提供的Random类.从List或Set中随机取出一个元素,从Map中随机获取一个key或value. 因为Set没有提供get(int index)方法,仅仅能先获取一个随机数后.利用一 ...
最新文章
- Activity Recognition行为识别
- 面向对象编程 object oriented programming(OOP)
- 分享几种绕过防注入的方法
- 【Ubuntu】Linux系统( ubuntu )安装方案
- Android开发之微信支付获取签名小工具分享
- 设计数据密集型应用程序_设计数据密集型应用程序书评
- linux c之strncpy函数和strncmp函数最简单使用总结
- ssl1763-观光旅游【最小环,Floyd,dijkstra】
- 在php中创建三个表格,创建新工作表PHPExcel
- html设置json请求头,当我想在zf2客户端代码中使用“application/json”时,接受请求标头是“text/html,application/xhtm ...(etc)”...
- python htmltestrunner报告_python3使用HTMLTestRunner生成测试报告
- 改变自己就是改变世界的开始
- 2021年下半年《信息系统项目管理师》真题
- 表白代码,浪漫网页-JavaScript的应用
- Tomcat原理整理
- CentOS系统下载阿里yum源
- java:comp/env 解释
- 供应链金融的三种业务模式
- 挖掘Dark Sky Maps(热的要死后,疯传的一个气温地图网站)
- Excel中提取单元格中的部分内容或单元格中的数字公式大全(提取数字,提取前几位,提取指定文字之间的内容等等)