Предельные записи, возвращаемые диапазоном - PullRequest
2 голосов
/ 08 апреля 2019

Привет! У меня есть особый запрос sparql, который возвращает все мои тройки на графике.Это занимает некоторое время, поэтому мне было интересно, смогу ли я ограничить количество троек и повторять запрос каждый раз, когда пользователь нажимает следующую на интерфейсе, например: сначала он видит первые 10, затем следующие 10 и т. Д. Сейчас яполучить все результаты и сохранить их, а затем просмотреть результаты.Могу ли я просто получить первые 10, следующие 10 и т. Д.

1 Ответ

1 голос
/ 08 апреля 2019

Для запроса SELECT, чтобы получить только первые десять строк:

SELECT ...
WHERE {
  ...
}
LIMIT 10

Чтобы получить следующие десять:

SELECT ...
WHERE {
  ...
}
OFFSET 10 LIMIT 10

Для следующих десяти увеличьте OFFSET до 20 и т. Д.

Вы говорите, что ваш запрос возвращает тройки, так что это запрос CONSTRUCT? LIMIT и OFFSET также работают с CONSTRUCT, но количество возвращаемых троек будет зависеть от количества тройных шаблонов в шаблоне конструкции.

Редактировать: При использовании LIMIT и OFFSET в некоторых хранилищах SPARQL вам также потребуется использовать ORDER BY ?x, где ?x - одна из переменных запроса. Это обеспечивает предсказуемый порядок результатов.

...