当前位置: 首页 > news >正文

网站生成word建设网站开题报告

网站生成word,建设网站开题报告,网站后台做链接,多用户电商平台如果对Couchbase集群进行查询时必须处理大量文档#xff0c;则使用分页来逐页获取行很重要。 您可以在“ 分页 ”一章的文档中找到一些信息#xff0c;但是我想在本文中提供更多详细信息和示例代码。 在此示例中#xff0c;我将基于啤酒样本数据集创建一个简单的视图#… 如果对Couchbase集群进行查询时必须处理大量文档则使用分页来逐页获取行很重要。 您可以在“ 分页 ”一章的文档中找到一些信息但是我想在本文中提供更多详细信息和示例代码。 在此示例中我将基于啤酒样本数据集创建一个简单的视图该视图用于按国家/地区查找啤酒厂 function (doc, meta) {if (doc.type brewery doc.country){emit(doc.country);} } 该视图按国家列出所有啤酒厂索引如下 文件编号 键 值 狂暴者 阿根廷 空值 cervecera_jerome 阿根廷 空值 brouwerij_nacional_balashi 阿鲁巴岛 空值 australian_brewing_corporation 澳大利亚 空值 carlton_and_united_breweries 澳大利亚 空值 库珀酿酒厂 澳大利亚 空值 寄养人_s_澳大利亚_公司 澳大利亚 空值 gold_coast_brewery 澳大利亚 空值 lion_nathan_australia_hunter_street 澳大利亚 空值 little_creatures_brewery 澳大利亚 空值 麦芽铲子酿酒厂 澳大利亚 空值 matilda_bay_brewing 澳大利亚 空值 … … … … … … … … … yellowstone_valley_brewing 美国 空值 yuengling_son_brewing 美国 空值 zea_rotisserie_and_brewery 美国 空值 培养者 越南 空值 色相酿酒 越南 空值 因此现在您要以5行的页面大小浏览此索引。 使用跳过/限制参数 最简单的方法是使用limit和skip参数例如 页面1limit 5skip0 页面2limit 5skip 5 … 页面xlimit 5skiplimit *page-1 很明显您可以使用进行范围或键查询startkey / endkey键键和排序选项降序所需的任何其他参数。 这是简单但不是最有效的方法因为查询引擎必须读取与查询匹配的所有行直到达到跳过值。 python中的一些代码示例使用此视图进行分页 from couchbase import Couchbase cb Couchbase.connect(bucketbeer-sample)hasRow True rowPerPage 5 page 0 currentStartkey startDocIdwhile hasRow :hasRow Falseskip 0 if page 0 else 1page page 1print -- Page %s -- % (page)rows cb.query(test, by_country, limitrowPerPage, skipskip, startkeycurrentStartkey, startkey_docidstartDocId)for row in rows:hasRow Trueprint Country: \%s\ \t Id: %s % (row.key, row.docid)currentStartkey row.keystartDocId row.docidprint -- -- -- -- \n 该应用程序在所有页面上循环直到索引结束。 正如我之前所说这不是最佳方法因为系统必须读取所有值直到达到跳过为止。 以下示例显示了解决此问题的更好方法。 使用startkey / startkey_docid参数 为了使这种分页更加有效可以采用另一种方法。 此方法使用startkey和startkey_docid选择适当的文档。 startkey参数将是查询应开始读取的键的值基于“上一页”的最后一个键 由于对于例如“ Germany”的键您可能具有一个或多个ID文档因此有必要对Couchbase查询引擎说从哪里开始为此您需要使用startkey_docid参数并忽略此ID因为它是前一页的最后一个。 因此如果我们查看索引并添加一个行号来说明分页 行数 文件编号 键 值 查询第1页 极限 5 1个 狂暴者 阿根廷 空值 2 cervecera_jerome 阿根廷 空值 3 brouwerij_nacional_balashi 阿鲁巴岛 空值 4 australian_brewing_corporation 澳大利亚 空值 5 carlton_and_united_breweries 澳大利亚 空值 查询第2页 limit 5startkey “澳大利亚”startkey_docid carlton_and_united_breweriesskip 1 6 库珀酿酒厂 澳大利亚 空值 7 寄养人_s_澳大利亚_公司 澳大利亚 空值 8 gold_coast_brewery 澳大利亚 空值 9 lion_nathan_australia_hunter_street 澳大利亚 空值 10 little_creatures_brewery 澳大利亚 空值 查询第3页 limit 5startkey “澳大利亚”startkey_docid little_creatures_breweryskip 1 11 麦芽铲子酿酒厂 澳大利亚 空值 12 matilda_bay_brewing 澳大利亚 空值 … … … … … … … … … … yellowstone_valley_brewing 美国 空值 … yuengling_son_brewing 美国 空值 … zea_rotisserie_and_brewery 美国 空值 … 培养者 越南 空值 … 色相酿酒 越南 空值 因此如您在上面的示例中看到的那样查询使用startkey和文档ID并使用skip 1传递它。 现在让我们再次使用Python查看应用程序代码 from couchbase import Couchbase cb Couchbase.connect(bucketbeer-sample)hasRow True rowPerPage 5 page 0 currentStartkey startDocIdwhile hasRow :hasRow Falseskip 0 if page 0 else 1page page 1print -- Page %s -- % (page)rows cb.query(test, by_country, limitrowPerPage, skipskip, startkeycurrentStartkey, startkey_docidstartDocId)for row in rows:hasRow Trueprint Country: \%s\ \t Id: %s % (row.key, row.docid)currentStartkey row.keystartDocId row.docidprint -- -- -- -- \n 该应用程序在所有页面上循环直到索引结束 使用这种方法应用程序开始在特定键startkey参数处读取索引并且仅在索引中的必要条目上循环。 这比使用简单的跳过方法更有效。 具有减少功能的视图 当您的视图使用reduce函数进行分组时无法使用参数startkey_docid因为在缩小结果时文档的ID不可用。 因此在使用reduce时必须使用skip和limit参数。 Couchbase Java SDK分页器 在前面的示例中我展示了如何使用各种查询参数进行分页。 Java SDK提供了一个Paginator对象以帮助开发人员处理分页。 以下示例在Paginator API中使用相同的视图。 package com.couchbase.devday;import com.couchbase.client.CouchbaseClient; import com.couchbase.client.protocol.views.*; import java.net.URI; import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Properties; import java.util.concurrent.TimeUnit; import java.util.logging.ConsoleHandler; import java.util.logging.Handler; import java.util.logging.Level; import java.util.logging.Logger;public class JavaPaginatorSample {public static void main(String[] args) {configure();System.out.println(--------------------------------------------------------------------------);System.out.println(\tCouchbase - Paginator);System.out.println(--------------------------------------------------------------------------);ListURI uris new LinkedListURI();uris.add(URI.create(http://127.0.0.1:8091/pools));CouchbaseClient cb null;try {cb new CouchbaseClient(uris, beer-sample, );System.out.println(--------------------------------------------------------------------------);System.out.println(Breweries (by_name) with docs JSON parsing);View view cb.getView(test, by_country);Query query new Query();int docsPerPage 5;Paginator paginatedQuery cb.paginatedQuery(view, query, docsPerPage);int pageCount 0;while(paginatedQuery.hasNext()) {pageCount;System.out.println( -- Page pageCount -- );ViewResponse response paginatedQuery.next();for (ViewRow row : response) {System.out.println(row.getKey() : row.getId());}System.out.println( -- -- -- );}System.out.println(\n\n);cb.shutdown(10, TimeUnit.SECONDS);} catch (Exception e) {System.err.println(Error connecting to Couchbase: e.getMessage());} }private static void configure() {for(Handler h : Logger.getLogger(com.couchbase.client).getParent().getHandlers()) {if(h instanceof ConsoleHandler) {h.setLevel(Level.OFF);}}Properties systemProperties System.getProperties();systemProperties.put(net.spy.log.LoggerImpl, net.spy.memcached.compat.log.SunLogger);System.setProperties(systemProperties);Logger logger Logger.getLogger(com.couchbase.client);logger.setLevel(Level.OFF);for(Handler h : logger.getParent().getHandlers()) {if(h instanceof ConsoleHandler){h.setLevel(Level.OFF);}} }} 如您所见您可以使用Java Paginator轻松对查询结果进行分页。 在第37行使用视图和查询对象创建Paginator并指定页面大小 然后您只需要使用hasNext和next方法来导航结果。 Java Paginator知道他们的查询使用的是减少还是不使用因此您可以将其与所有类型的查询一起使用–在内部它将在跳过/限制方法和doc_id方法之间切换。 您可以在Paginator类中看到它是如何完成的 。 请注意如果要在HTTP请求之间的Web应用程序中执行此操作则必须将Paginator对象保留在用户会话中因为当前API会将当前页面保持在其状态。 结论 在此博客文章中您学习了如何在Couchbase视图中处理分页。 总结 分页基于您在执行查询时发送的某些特定参数。 Java开发人员可以使用简化分页的Paginator类。 我邀请您查看仍在开发中的新Couchbase查询语言N1QL它将使用LIMITOFFSET参数为开发人员提供更多选项包括分页例如 SELECT fname, age FROM tutorialWHERE age 30LIMIT 2OFFSET 2 如果您想了解有关N1QL的更多信息 Couchbase社区门户上的N1QL N1QL在线教程 参考来自Tug博客博客的JCG合作伙伴 Tugdual Grall 使用Couchbase进行分页 。 翻译自: https://www.javacodegeeks.com/2013/10/pagination-with-couchbase.html
http://www.yutouwan.com/news/156974/

相关文章:

  • 建设企业网站的时间本地架设wordpress
  • php网站有点设计师网页导航官网
  • 淘宝网站开发源码个性化网站有哪些
  • 成都建站贵州软件开发 网站开发
  • 任务网站建设平度网站建设
  • 网站最新域名ip查询接口店铺在百度免费定位
  • 同城分类信息网站十大企业网站排行榜
  • 寿光shengkun网站建设江西建设职业技能教育咨询网站
  • 创建手机网站地方类门户网站
  • 设计非常漂亮的网站网站推广营销方法
  • 网站主页设计布局高级网站开发
  • 免费企业网站建立北京网站排名优化
  • 网页设计怎么创建站点编程怎么学
  • 龙岗住房建设局网站柳州企业做网站
  • 濮阳做网站的公司有哪些对网站建设展望
  • 杭州如何做百度的网站推广企业网站建设哪家最好
  • app开发网站建设公司前端培训心得
  • 建设企业网站官方登录论坛网站建设公司
  • 网站手机版制作在百度怎么建立自己的网站吗
  • 郑州建设网站企业如何提高网站索引量
  • 河南大学学科建设处网站网站建设服务的广告
  • 在哪个网站可以学做衣服seo外包公司专家
  • 网站开发者模式义乌高端网站建设
  • 网站开发游戏泉州钟南山最新消息
  • 互联网上市公司一览表株洲关键词优化
  • 五金模具技术支持 东莞网站建设濮阳市建设局网站
  • 专门做化妆品平台的网站汽车网站网页模板
  • 企业网站建设代理商安庆高端网站建设公司
  • 网站表现形式yy直播下载电脑版
  • 网站商城支付接口企业所得税交多少