24jqGrid -搜索大数据

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 24jqGrid -搜索大数据

这个例子演示了jqGrid如何处理大量的数据。我们已经在后台模拟了12000条数据行。利用ajax,jqGrid只加载这些可见数据。如果想搜索(在搜索框中数据文字,然后回车),表格将搜索数据发送到服务器然后加载那些只符合过滤条件的数据。如果我们给一列加上索引,速度将提高大约两倍。这种情况下,最重要的是:实例是加载了12000条数据。

HTML代码举例

<html>
  <head>
    <title>jqGrid 实例</title>
  </head>
  <body>
    ···代码省略···
    <div class="h">Search By:</div>
    <div>
      <input type="checkbox" id="autosearch"
        onclick="enableAutosubmit(this.checked)"> Enable Autosearch <br />
      Code<br /> <input type="text" id="search_cd"
        onkeydown="doSearch(arguments[0]||event)" />
    </div>
    <div>
      Name<br> <input type="text" id="item_nm"
        onkeydown="doSearch(arguments[0]||event)" />
      <button onclick="gridReload()" id="submitButton"
        style="margin-left: 30px;">Search</button>
    </div>
    <br />
    <table id="bigset"></table>
    <div id="pagerb"></div>
    ···代码省略···
  </body>
</html>

javascript代码举例

$(function(){
  pageInit();
});
function pageInit(){
  jQuery("#bigset").jqGrid({
    url : ctx+'/BigSet',
    datatype : "json",
    height : 255,
    colNames : [ 'Index', 'Name', 'Code' ],
    colModel : [ 
                 {name : 'item_id',index : 'item_id',width : 65}, 
                 {name : 'item',index : 'item',width : 150}, 
                 {name : 'item_cd',index : 'item_cd',width : 100} 
               ],
    rowNum : 12,
    mtype : "POST",
    pager : jQuery('#pagerb'),
    pgbuttons : false,
    pgtext : false,
    pginput : false,
    sortname : 'item_id',
    viewrecords : true,
    sortorder : "asc"
  });
}
var timeoutHnd;
var flAuto = false;
function doSearch(ev) {
  if (!flAuto)
    return;
  if (timeoutHnd)
    clearTimeout(timeoutHnd);
    timeoutHnd = setTimeout(gridReload, 500);
}
function gridReload() {
  var nm_mask = jQuery("#item_nm").val()||"";
  var cd_mask = jQuery("#search_cd").val()||"";
  jQuery("#bigset").jqGrid('setGridParam', {
    url : ctx+"/BigSet?nm_mask=" + nm_mask + "&cd_mask=" + cd_mask,
    page : 1
  }).trigger("reloadGrid");
}
function enableAutosubmit(state) {
  flAuto = state;
  jQuery("#submitButton").attr("disabled", state);
}

java servlet代码举例

public class BigSet extends HttpServlet {
  private static final long serialVersionUID = 1L;
    /**
     * @see HttpServlet#HttpServlet()
     */
    public BigSet() {
        super();
        // TODO Auto-generated constructor stub
    }
  /**
   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doPost(request, response);
  }
  /**
   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    //组织模拟数据
    JSONArray jArray = new JSONArray();
    jArray.put(new JSONObject("{\"id\":\"1\",\"cell\":[\"1\",\"Lorem\",\"575878\"]}"));
    jArray.put(new JSONObject("{\"id\":\"2\",\"cell\":[\"2\",\"Lorem\",\"857450\"]}"));
    jArray.put(new JSONObject("{\"id\":\"3\",\"cell\":[\"3\",\"ipsum\",\"292404\"]}"));
    jArray.put(new JSONObject("{\"id\":\"4\",\"cell\":[\"4\",\"dolor\",\"814131\"]}"));
    jArray.put(new JSONObject("{\"id\":\"5\",\"cell\":[\"5\",\"sit\",\"962077\"]}"));
    jArray.put(new JSONObject("{\"id\":\"6\",\"cell\":[\"6\",\"amet,\",\"549801\"]}"));
    jArray.put(new JSONObject("{\"id\":\"7\",\"cell\":[\"7\",\"sed\",\"166822\"]}"));
    jArray.put(new JSONObject("{\"id\":\"8\",\"cell\":[\"8\",\"in\",\"616758\"]}"));
    jArray.put(new JSONObject("{\"id\":\"9\",\"cell\":[\"9\",\"id\",\"550799\"]}"));
    jArray.put(new JSONObject("{\"id\":\"10\",\"cell\":[\"10\",\"dictum\",\"763004\"]}"));
    jArray.put(new JSONObject("{\"id\":\"11\",\"cell\":[\"11\",\"velit\",\"244985\"]}"));
    jArray.put(new JSONObject("{\"id\":\"12\",\"cell\":[\"12\",\"est\",\"525127\"]}"));
    String cd_mask = request.getParameter("cd_mask");
    String nm_mask = request.getParameter("nm_mask");
    JSONArray filterData = new JSONArray();
    if(cd_mask!=null && !"".equals(cd_mask) && nm_mask!=null && !"".equals(nm_mask)){
      for(int i=0;i<jArray.length();i++){
        JSONObject item = jArray.getJSONObject(i);
        JSONArray field = item.getJSONArray("cell");
        if(field.getString(1).equals(nm_mask) && field.getString(2).equals(cd_mask)){
          filterData.put(item);
        }
      }
    }else if(cd_mask!=null && !"".equals(cd_mask)){
      for(int i=0;i<jArray.length();i++){
        JSONObject item = jArray.getJSONObject(i);
        JSONArray field = item.getJSONArray("cell");
        if(field.getString(2).equals(cd_mask)){
          filterData.put(item);
        }
      }
    }else if(nm_mask!=null && !"".equals(nm_mask)){
      for(int i=0;i<jArray.length();i++){
        JSONObject item = jArray.getJSONObject(i);
        JSONArray field = item.getJSONArray("cell");
        if(field.getString(1).equals(nm_mask)){
          filterData.put(item);
        }
      }
    }else{
      filterData = jArray;
    }
    String jsondata = "{" +
        "        \"page\":\"1\"," +
        "        \"total\":1," +
        "        \"records\":\""+filterData.length()+"\"," +
        "        \"rows\":"+filterData.toString()+"}";
    response.getWriter().write(jsondata);
  }
}
相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps&nbsp;
目录
相关文章
|
消息中间件 分布式计算 大数据
大数据Spark实时搜索日志实时分析
大数据Spark实时搜索日志实时分析
188 1
|
5月前
|
运维 监控 Java
在大数据场景下,Elasticsearch作为分布式搜索与分析引擎,因其扩展性和易用性成为全文检索首选。
【7月更文挑战第1天】在大数据场景下,Elasticsearch作为分布式搜索与分析引擎,因其扩展性和易用性成为全文检索首选。本文讲解如何在Java中集成Elasticsearch,包括安装配置、使用RestHighLevelClient连接、创建索引和文档操作,以及全文检索查询。此外,还涉及高级查询、性能优化和故障排查,帮助开发者高效处理非结构化数据。
79 0
|
大数据
阿里云产品体系分为6大分类——大数据——大数据的5种模块——大数据搜索与分析
阿里云产品体系分为6大分类——大数据——大数据的5种模块——大数据搜索与分析自制脑图
375 1
|
存储 数据采集 XML
大数据数据采集的数据来源的日志数据之搜索类数据
在大数据领域,数据采集是一个非常重要的环节。日志数据已经成为了大数据应用中不可或缺的一部分,尤其是搜索类数据。本文将介绍搜索类日志数据作为数据来源的特点以及其采集流程。
190 0
|
前端开发 JavaScript 搜索推荐
select2,利用ajax高效查询大数据列表 1(可搜索、可分页)
select2,利用ajax高效查询大数据列表(可搜索、可分页)
502 0
select2,利用ajax高效查询大数据列表 1(可搜索、可分页)
|
存储 分布式计算 自然语言处理
基于MaxCompute+开放搜索的电商、零售行业搜索开发实践
搜索一直是电商行业流量来源的核心入口之一,如何搭建电商行业搜索并提升搜索效果,一直是电商行业开发者努力攻克的难题。基于传统数据库或开源引擎虽然能够搭建基础搜索服务,但随着商品数据的增多和业务流量的增长,难免会遇到性能瓶颈和效果瓶颈。另一方面,随着电商、直播、云计算等技术的不断发展,越来越多的传统零售企业正在进行互联网云上转型,特别是受近两年疫情等因素的影响,APP、小程序已经成为零售企业重要的业务增长来源。在此背景下,如何快速搭建高效搜索服务成为零售行业上云及转型的难题。
1213 0
基于MaxCompute+开放搜索的电商、零售行业搜索开发实践
|
前端开发 Java 大数据
select2,利用ajax高效查询大数据列表2(可搜索、可分页)
select2,利用ajax高效查询大数据列表(可搜索、可分页)
185 0
|
机器学习/深度学习 人工智能 达摩院
大数据+AI Meetup 2021 首站!9位大佬解读向量搜索技术在多维场景下的应用
3月20日,阿里云开发者社区联合阿里云计算平台事业部、达摩院共同举办的 BIGDATA + AI Meetup · 北京站向量检索专场即将重磅开启!
大数据+AI Meetup 2021 首站!9位大佬解读向量搜索技术在多维场景下的应用
|
自然语言处理 运维 监控
阿里云飞天大数据产品价值解读——《一站式高质量搜索开放搜索》
随着研发技术的发展,开发者对内容、工具、平台等的一站式需求愈加强烈。为了构建更加高效和高质量的一站式大数据搜索产品,阿里云将一站式搜索服务的核心着眼于实现高质量以及开放式搜索。本次直播将由阿里云智能-高级产品专家染天为大家全面解析OpenSearch核心能力、搜索体验、价值评估并分享典型案例
4970 0
阿里云飞天大数据产品价值解读——《一站式高质量搜索开放搜索》
|
大数据
【入门到精通,23天掌握Elasticsearch大数据实时搜索与分析能力】eBay技术大牛阮一鸣邀您免费听课
讲师:阮一鸣—— eBay Pronto平台技术负责人,现管理eBay 上百个集群,超过4000个数据节点规模,本节课从概念到实操,快速运用ELK进行搜索与大数据分析。同时可免费开通阿里云Elasticsearch(3节点1核2G)1个月,辅助您更好的学习课程。
1645 0
【入门到精通,23天掌握Elasticsearch大数据实时搜索与分析能力】eBay技术大牛阮一鸣邀您免费听课