88250

          Java

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            82 隨筆 :: 0 文章 :: 5 評論 :: 0 Trackbacks
          <2011年1月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          常用鏈接

          留言簿

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          有時我們需要隨機(jī)地獲取數(shù)據(jù)記錄(實體),比如博客程序中的“隨機(jī)文章”的實現(xiàn)。

          目前 GAE 并沒有 API 可以直接獲取隨機(jī)實體,要實現(xiàn)這樣的需求我們只能自己想辦法了 :-)

          在 stackoverflow 上也有人提過該問題,總結(jié)如下:

          • 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 在處理“隨機(jī)閱讀”上采用的是方法一,即在每個文章實體上添加一個屬性保存 0-1 的隨機(jī)浮點數(shù)。

          在獲取隨機(jī)文章時生成一個 0-1 的隨機(jī)數(shù)(mid)作為查詢條件,以此查詢條件作為邊界(0 <= mid <=1)來過濾實體保存的隨機(jī)值屬性。

          這個方法基本可以達(dá)到隨機(jī)的效果了,為了讓隨機(jī)的效果更動態(tài)一點,我們可以考慮經(jīng)常更新文章實體中的隨機(jī)浮點值:

          • 訪問文章時(即在更新文章瀏覽次數(shù)時一并更新該文章的隨機(jī)浮點值)
          • 后臺定時任務(wù)(獲取一定數(shù)量的隨機(jī)文章然后更新它們的隨機(jī)浮點值)
          • 用戶做文章更新時

          加上以上處理后,隨機(jī)的效果比較好了 :-)



          本文是使用 B3log Solo簡約設(shè)計の藝術(shù) 進(jìn)行同步發(fā)布的
          原文地址:http://88250.b3log.org/get-gae-random-entities.html
          posted on 2011-01-10 21:16 88250 閱讀(238) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 鄂州市| 左贡县| 汝州市| 堆龙德庆县| 依兰县| 大方县| 沧州市| 蕲春县| 兴山县| 文水县| 靖安县| 嘉荫县| 荣成市| 旌德县| 浮梁县| 兴安盟| 阜新市| 阜城县| 中宁县| 子长县| 安化县| 高淳县| 双江| 天峨县| 淮南市| 册亨县| 郎溪县| 都江堰市| 颍上县| 余庆县| 隆尧县| 来安县| 平武县| 西乌| 承德市| 南京市| 吉林市| 含山县| 凌海市| 繁峙县| 磴口县|