如何在Elasticsearch中使用分页获取总记录



在我的product索引中,我有60K条记录,我正在运行一个匹配查询,其中来自大小参数。默认情况下,ES支持10k的记录搜索,所以我将其增加到了60k。

我的问题是我已经通过了API&我想在60K个具有相同分页大小参数的记录中进行搜索。

那么我如何将60k条记录与我的分页大小参数进行匹配

这是我的代码:

const query = {
query: {
match: {
name: {
query: req.text
}
}
}
}
const { body: { hits } } = await esclient.search({
from: req.skip || 0,
size: req.offset || 50,
index: productsIndex,
type: productsType,
body: query,
});

这里的代码60K大小:

const query = {
query: {
match: {
name: {
query: req.text
}
}
},
size:60000
}

在我的查询中,如果我使用size=60K,我将得到20条记录(如果没有它,我将获得12条记录(,但我不能使用分页参数。

如果我答对了你的问题,

size参数是您想要响应的点击数/文档数。这并不是说弹性搜索只会处理第一个大小文档数的查询。10K是您可以获得的最大文档数。如果指定大小大于10K,则弹性搜索会出现这样的错误。ES错误

在不担心上述问题的情况下,使用中的大小作为分页的参数。

最新更新