#node.js #elasticsearch
#node.js #elasticsearch
Вопрос:
Здравствуйте, я пытаюсь настроить разбивку на страницы в эластичном поиске, но это не работает. Возможно, в моем запросе чего-то не хватает. Ниже приведен мой код:
Вот моя функция клиента поиска:
const esResult = await client.search(
{
index: 'products',
type: '_doc',
body: {
size: size,
from: offset,
sort: [],
track_total_hits: true,
query: {
"bool": {
"filter": filterArray
}
}
},
},
additionalParams
);
Вот как я вычисляю смещение в зависимости от размера и номера страницы, исходя из параметров запроса
let size = parseInt(filters.size) || 10;
let pageNumber = parseInt(filters.pageNumber) || 1;
let offset = (pageNumber * size) - size || 0;
// preparing filter query object
let filterArray = formateFiltersArry(filters);
Происходит что-то странное, что я замечаю.. Когда я использую числовые значения (константа; скажем, 10) в ключах from и size, поиск клиента () работает нормально. Но когда я беру значения из параметров запроса, в результате документа нет. (Хотя у меня есть консоль.запишите значения: там они в порядке).
С нетерпением ждем,
Комментарии:
1. Разбиение на страницы ES довольно ограничено, рассматривали ли вы возможность использования scroll api вместо этого?