elasticsearch,Javascript,Node.js,Mongodb,Express,elasticsearch" /> elasticsearch,Javascript,Node.js,Mongodb,Express,elasticsearch" />

Javascript 使用MongoDB和ExpressJS进行Elasticsearch分页

Javascript 使用MongoDB和ExpressJS进行Elasticsearch分页,javascript,node.js,mongodb,express,elasticsearch,Javascript,Node.js,Mongodb,Express,elasticsearch,我试图在网上搜索解决方案,但说实话,我仍然没有找到任何帮助我实现这一目标的方法 这是我第一次使用ElasticSearch,我对Node和MongoDB也很陌生 所以,我遵循了一种教程,从NPM实现了Mongoostic,让ElasticSearch与Node一起工作 它似乎可以很好地工作,即使对总共12个用户进行了索引,如果我在搜索列表视图中键入搜索“user”,我可以找到12条记录,它在a中显示每个记录10条,并且第一条记录缺少值 但对我来说主要的问题是分页。。。或者是一种。。。在上面实现无

我试图在网上搜索解决方案,但说实话,我仍然没有找到任何帮助我实现这一目标的方法

这是我第一次使用ElasticSearch,我对Node和MongoDB也很陌生

所以,我遵循了一种教程,从NPM实现了Mongoostic,让ElasticSearch与Node一起工作

它似乎可以很好地工作,即使对总共12个用户进行了索引,如果我在搜索列表视图中键入搜索“user”,我可以找到12条记录,它在a中显示每个记录10条,并且第一条记录缺少值

但对我来说主要的问题是分页。。。或者是一种。。。在上面实现无限滚动也很好,但我真的不知道如何处理它

因此,目前处理它的控制器如下所示:

exports.searchUsers = function(req, res) {
    User.search({
      query_string: {
        query: req.query.q
      }
    },
    { hydrate: true },
    function(err, results) {
      if (err) res.send(err);
      res.render('search-results', {
        results: results,
        users: results.hits.hits
      });
    });
};
我真的不知道把
size
from
放在哪里。。。在理解了这一点之后,我也想知道如何实现,如果可能的话,一种无限卷轴。。。以及如何处理分页的链接。。。i、 e.:
prev,1,2,3,4,…,next

该视图有一个用于搜索的简单输入文本,按“提交”后,它将打开一个新页面,其中包含
点击列表
,因此它应该不复杂


我希望你能帮忙。谢谢

默认情况下,elasticsearch返回前10个结果:如果需要更多结果,您必须设置大小参数

此外,为了添加大小from参数,您需要这样编写查询:

User.search({
    query: {
      query_string: {
        query: req.query.q
      }
    },
    size: 30,
    from: 30
  },
  {hydrate: true},
  function (err, results) {
    if (err) res.send(err);
    res.render('search-results', {
      results: results,
      users: results.hits.hits
    });
  });
(见此处:)


这将为您提供30号用户到60号用户(更多信息如下:)。您必须使用前端才能从
参数中获得所需的大小值。

太棒了!你知道是否也可以用它以某种方式进行无限滚动吗?对不起,我现在就试过了,它根本不起作用。我收到以下错误:
阶段的所有碎片都失败:[query]
奇怪。。。你能把整个错误信息粘贴到这里吗?