Я пытаюсь сделать нумерацию страниц в Гремлин.Я следовал решению, предоставленному в рецептах гремлина. Так что сейчас я использую шаг range()
для усечения результатов.Это хорошо работает, потому что когда пользователи запрашивают x результатов, id запрашивает только x из них и не выполняет полный поиск, что значительно быстрее.
Однако в документах Gremlin говорится, что:
Результат обхода никогда не упорядочивается, если только явно с помощью order () - step.Таким образом, никогда не полагайтесь на порядок итераций между выпусками TinkerPop3 и даже внутри выпуска (поскольку оптимизация обхода может изменить поток).
И порядок действительно важен для разбиения на страницы (мы не хотим, чтобы пользовательимеют одинаковые результаты на разных страницах).
Добавление order()
действительно замедлит выполнение запросов, поскольку ему придется запрашивать все вершины, относящиеся к поиску, а затем обрезать его с помощью range()
.
Любые идеи, как это может бытьрешено иметь согласованность между запросами и все же иметь меньшее время запроса для неполного поиска?