【问题标题】:pagination in jquery in web page网页中jquery中的分页
【发布时间】:2016-10-31 18:13:19
【问题描述】:

我制作了基于弹性搜索的搜索引擎,并使用 ajax 和 jquery 将其连接到网页。当有人输入搜索时,如果小于 30,则所有匹配结果都显示在单个网页上。在大多数情况下,我知道总匹配结果超过 600,但网页只显示 30 个结果。 在控制台中显示如下

  data: Object
    hits: Object
    hits: Array[10]
    max_score : 1.2333
    total : 650

这里总匹配结果为 650,但网页仅显示 30 个结果。

如何实现分页。我用来在网页上显示这些结果的代码是

    $.ajax({
        url: '/elastic/',
        type: 'GET',
        data: {"data": text},
        success: function (response) {
            $('.pagination').remove();
            data = JSON.parse(response);
            console.log(data);              
        for (var hit in data.data.hits.hits) 
          {
            var source = data.data.hits.hits[hit]._source;
            $('.div').append(source.user_name + ' / ' + 
               source.name   +'<br/>');
               }

           }, searchText = text;     }

在这里我应该实现分页,我试图在这里寻找相关的分页示例,但我没有找到任何东西。而且每次搜索结果都不一样。有时有 500 个匹配结果,有时有 10 个。 有人可以给我一个提示/指导或示例,说明如何实现分页。我从最近几天开始尝试。

【问题讨论】:

    标签: javascript jquery elasticsearch pagination


    【解决方案1】:

    您可以使用from and size parameters(作为查询参数或数据参数)。另一方面,还有一个 Scroll API。你可以从https://www.elastic.co/guide/en/elasticsearch/reference/2.4/search-request-scroll.html查看

    【讨论】:

    • @Hkullekci 我知道 from 和 size 参数,但我的意思是当我在网页中显示数据时,我该如何使用这些参数?或者我该如何实现分页。 .任何建议或提示。我会很感激的。
    • 首次加载页面时,您可以从结果中获取文档总数。之后,此计数和您的页面大小将为您提供一个页面列表。您可以在控制器上处理此逻辑。然后,可以将分页写在您的模板上。之后,您的每个弹性搜索请求都应该发送您当前的页码。
    • 谢谢你的意思。但是你能给我一个简短的例子吗,或者如果已经有,你能指出来让我有一个更好的主意。
    猜你喜欢
    • 1970-01-01
    • 2018-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-10
    • 1970-01-01
    • 1970-01-01
    • 2016-04-14
    相关资源
    最近更新 更多