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)来过滤实体保存的随机值属性。

这个方法基本可以达到随机的效果了,为了让随机的效果更动态一点,我们可以考虑经常更新文章实体中的随机浮点值:

  • 访问文章时(即在更新文章浏览次数时一并更新该文章的随机浮点值)
  • 后台定时任务(获取一定数量的随机文章然后更新它们的随机浮点值)
  • 用户做文章更新时

加上以上处理后,随机的效果比较好了 :-)



本文是使用 B3log Solo 从 简约设计の艺术 进行同步发布的
原文地址:http://88250.b3log.org/get-gae-random-entities.html

转载于:https://www.cnblogs.com/lanzhi/archive/2011/01/10/6468264.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/297431.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

构造函数怎么在主函数调用_C++ 虚基类及其派生类构造函数(学习笔记:第7章 12)...

虚基类及其派生类构造函数[1]建立对象时所指定的类称为最远派生类。虚基类的成员是由最远派生类的构造函数通过调用虚基类的构造函数进行初始化的。在整个继承结构中&#xff0c;直接或间接继承虚基类的所有派生类&#xff0c;都必须在构造函数的成员初始化表中为虚基类的构造函…

打得了橄榄球大联盟,进得了麻省理工,无论是四肢还是头脑都同样发达,这才叫猛男!...

全世界只有3.14 % 的人关注了爆炸吧知识今天小天就介绍一位同样在学术界、体坛都很生猛的猛男吧约翰尤索 (John Urschel) 关于约翰尤索一直有“学霸”“学神”这些词伴随着他然而尤索却说他从来都没认真听过老师讲课尤索出生在加拿大温尼伯父亲是医生&#xff0c;母亲是律师很小…

如何使用 EF Core 按周 对数据分组?

咨询区 Aza&#xff1a;在 Entity Framework 6 中&#xff0c;我可以用 SqlFunctions.DatePart() 函数来实现&#xff0c;参考如下代码&#xff1a;var byWeek data.GroupBy(x > SqlFunctions.DatePart("week", x.Date));现在的问题是, Entity Framework Core 中…

忍着疼痛奔跑,带着泪光微笑!

忍着疼痛奔跑&#xff0c;带着泪光微笑转瞬&#xff0c;毕业已近四年&#xff0c;回顾&#xff0c;还在路上。头几年&#xff0c;有着一颗爱玩的心&#xff0c;秉着“人这一辈子不能对不起自己”的谬论&#xff0c;一直随着自己的性子&#xff0c;想做什么就做什么&#xff0c;…

加菲猫语录,只准笑不准学

&#xff0d;今天我要做俯卧撑今天先俯卧&#xff0c;明天再撑。 &#xff0d;&#xff0d;真不愿意起来&#xff0c;尤其我还病了&#xff0c;可我还得带病坚持吃饭。 &#xff0d;&#xff0d;肚子大不可怕&#xff0c;可怕的是肚子里没有好东西。或者说&#xff0c;没有好…

python 什么是原类_Python 什么是元类(metaclasses)?

1.什么是类 在理解元类之前&#xff0c;我们必须先掌握Python中的类(class)。 和大多数语言一样&#xff0c;Python中的类知识用来描述如何“生成一个对象”&#xff1a;但是&#xff0c;在Python中&#xff0c;类不仅能用来描述如何生成一个对象&#xff0c;类本身也是对象。 …

mysql连接指定时区_MySQL创建JDBC连接时区问题

报错内容&#xff1a;ErrorCode0SQLState01S00The server time zone value is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zon…

听说这是和女朋友住一起后的现象之一

1 被人叫醒时的你&#xff01;2 分享一只软糯香甜的香蕉。。3 到底选哪根好呢&#xff1f;4 大叔你的手机壳怎么肥四&#xff1f;&#xff1f;5 听说这是和女朋友住一起后的现象之一6 爱国主义教育培养了一群吃货&#xff01;7 今天做做题吧&#xff01;&#xff08;本视频来源…

PDF 补丁丁 (修改PDF书签;拆分、合并、制作PDF;提取图片) 0.3.0.8 正式版

PDF 补丁丁 0.3.0.8 正式版 新版本已经发布&#xff0c;请到博客首页下载。 软件简介 PDF补丁丁是一个用于修改PDF文件信息的工具。它具有以下功能&#xff1a;■ 修改文档&#xff08;带“*”号部分功能需通过高级补丁修改功能实现&#xff09;&#xff1a; ● 修改文档属性…

Dapr + .NET 实战(八)服务监测

服务监测分布式服务性能指标&#xff0c;链路追踪&#xff0c;运行状况&#xff0c;日志记录都很重要&#xff0c;我们日常开发中为了实现这些功能需要集成很多功能&#xff0c;替换监控组件时成本也很高。Dapr 可观测性模块将服务监测与应用程序分离。它自动捕获由 Dapr sidec…

世界上第一位程序员是位美女——AdaLovelace【有图为证】

AdaLovelace画像 仙女一般吧....简介&#xff1a; 阿达奥古斯塔&#xff0c;19世纪诗人拜伦的女儿&#xff0c;数学家。穿孔机程序创始人&#xff0c;建立了循环和子程序概念。为计算程序拟定“算法”&#xff0c;写作的第一份“程序设计流程图”&#xff0c;被珍视为“第一个…

php mysql管理_MySQL 连接与管理

让 PHP 支持 MySQLPHP 有专有的 MySQL 函数库以使用操作 MYSQL 数据库。在 PHP 5 及以后版本中不再默认支持 MySQL &#xff0c;所以在运行这些库之前&#xff0c;请确定 php.ini 加载了 MySQL 数据库支持&#xff1a;extension mysql.dllMySQL 连接mysql_connect() 函数用于开…

python新手入门总结_初学python的操作难点总结(新手必看篇)

如下所示&#xff1a;1 在cmd下 盘与盘之间的切换 直接 D或d: 就好2 查找当前盘或者文件下面的目录 直接 dir3 想在一个盘下进去一个文件夹&#xff0c;用cd空格目标文件 cd p4 写文件的第一个字母后 按tab键自动补全 如果有多个p开头的则在按tab 会在所有之间切换5 d:切盘 dir…

android开发我的新浪微博客户端-用户授权页面UI篇(3.1)

上一篇讲了讲OAuth授权认证的事情,大概的介绍了OAuth的原理&#xff0c;并且完成了一个OAuth.java的类库&#xff0c;提供了几个OAuth认证必要的方法&#xff0c;本篇开始具体讲本项目的用户授权功能&#xff0c;用户授权页面是当用户第一次使用本软件的时候自动从载入页面跳转…

基于SharePoint革命性的大型企业协同门户产品

OpenShare——基于SharePoint革命性的大型企业协同门户产品&#xff0c;由光合信息技术&#xff08;上海&#xff09;有限公司研发&#xff0c;针对企业用户&#xff0c;目前可以通过其官网下载使用。OpenShare&#xff1a;打开SharePoint的全部潜能SharePoint是个非凡的产品&a…

SharePoint Foundation和SharePoint Server的区别

SharePoint Server 2010用来取代MOSS 2007&#xff0c;它有标准版和企业版两个版本&#xff0c;使用SQL Server数据库&#xff1b; 早期版本中的STS或WSS在2010中更名为SharePoint Foundation&#xff1b; 而SPS 2010包含了SharePoint Foundation和SharePoint Server。 SharePo…

还缺30万人!程序员2020年要过好日子了……

全世界只有3.14 % 的人关注了爆炸吧知识最近&#xff0c;程序员届有一个重大好消息&#xff0c;可能很多人还不知道&#xff0c;那就是&#xff1a;国内某些城市已经开始程序员人才补贴了&#xff01;对于人工智能公司的项目开发、人才引进、科技研发&#xff0c;最高按照国拨经…

iNeuOS工业互联网操作系统部署在华为欧拉(openEuler)国产系统

目 录1. 概述... 32. 创建虚拟机&安装华为欧拉&#xff08;openEuler&#xff09;系统... 42.1 创建新的虚拟机... 42.2 默认选择Wowrkstation 16.x. 52.3 选择稍后安装操作系统... 62.4 选择其他Liunx 4.x 64位.…

datatables 一列显示两个字段的数据_【tableau入门教程16】计算字段

有时数据表中的原始维度和度量并不满足我们的需求&#xff0c;因此可通过计算字段功能&#xff0c;利用各种函数新建字段。创建字段步骤1、在侧栏 创建计算字段2、拖曳字段到输入框或是输入部分字段名称选择字段&#xff0c;当输入框下面显示“计算有效”时可点击 确定 完成计算…

gcc 安装包_LNMP安装的前期准备(LNMP一键安装包下载)

如果我们手工安装 LNMP 环境&#xff0c;那么同样需要安装大概 14 个源码包(根据版本和功能不同而不同)。不过&#xff0c;现在网上非常流行的 LNMP 环境的搭建过程是采用 LNMP 一键安装包直接安装。这个一键安装包实际上就是一个事先写好的安装脚本&#xff0c;按照这个安装脚…