создание поискового API, который поддерживает аспекты, а также нумерацию страниц - PullRequest
1 голос
/ 23 сентября 2019

Я создаю поисковый API для поддержки интерфейса граненого поиска.Мое замешательство связано с необходимостью поддержки нумерации записей.По своей сути, мой API состоит из

  • ресурса: resource
  • условий поиска: массив терминов: terms[]
  • возвращаемых данных:массив объектов: data[{}]
    • запись: объект с каждым полем в качестве ключа record{}
    • количество записей: num
    • смещение в базе данных: page
  • граней, позволяющих сузить возвращаемые данные: подмножество ключей записи record{}: facets[]

Для чего егоСтоит, мой бэкэнд - SQLite и nodejs.

Моя проблема возникает из-за того, что я возвращаю только num записей как page результатов.Принимая во внимание, что в любой момент времени в клиенте существует только num записей, фасеты сузят результат только до этих num записей.Тем не менее, я хочу сузить результаты для всего набора результатов .Это означает, что я должен отправлять запросы назад для каждого щелчка.При каждом щелчке по фасету мне приходится перестраивать свой исходный запрос, на этот раз с учетом совокупных щелчков по фасетам, и возвращать результаты клиенту.Я на правильном пути?Какой набор данных (структура и содержимое) будет наиболее эффективным для возврата?

1 Ответ

0 голосов
/ 24 сентября 2019

Да, вы на правильном пути.Вы не можете реализовать этот поиск и фильтр только в пользовательском интерфейсе, если не отправите всю свою БД / таблицу в пользовательский интерфейс.

Что нужно отправить из пользовательского интерфейса на сервер:

  • фильтрует термины (фасеты), так что вы можете создавать предложения AND в своем запросе
  • номер страницы и размер страницы
  • sortпункт - если у вас нет только одного способа сортировать вещи.Но убедитесь, что ваши запросы отсортированы.
...