2013-10-13 3 views
0

Может кто-нибудь, пожалуйста, помогите мне понять, как я могу достичь разбивки на страницы, используя API-интерфейс neo4j или REST, но я не хочу использовать cypher. Я ищу разбивку на страницы как для результатов поиска neo4j Traversal, так и для neo4j Fulltext Index.pagination with neo4jphp/RESTAPI без использования cypher

Для получения информации об обращении Я пытался найти способ использовать смещение и ограничивающие результаты, но я не вижу нигде, кроме cypher.

Я вижу, что есть объект Pager, который может быть создан в neojphp, но единственным вариантом, который он позволяет, является изменение размера страницы и времени аренды, никоим образом, когда я могу приземлиться на конкретном смещении страницы или смещении, если я не перейду через все предыдущие n-1 страницы, чтобы получить n-ю страницу, используя функцию getNextResults(). Это кажется неэффективным.

Я также вижу, что в java api есть класс PagingIterator или ленивый итератор, который имеет функцию страницы, которая позволяет установить текущую страницу итерации, которая, кажется, решает проблему, но я не могу понять, как я могу использовать это, используя neo4jphp или REST api.

Для neo4j Полный текст (lucene) Я все еще не могу видеть, как я должен использовать разбиение на страницы с индексами FT. Я думаю, это должно быть возможно в люцине. но я не уверен, как я могу это сделать с помощью neo4jphp или REST API. В целом я думаю, что класс PagingIterator может помочь здесь, но не уверен, как это сделать. Нужна помощь или руководство. Благодаря!

+1

Из любопытства, почему вы не хотите использовать Cypher? Так происходит большинство вещей в Neo4j. –

ответ

4

Невозможно указать страницу через REST API; вы можете идти вперед только через пошаговый обход. Или, по крайней мере, нет способа указать страницу в соответствии с их документами, которые обычно довольно тщательны: http://docs.neo4j.org/chunked/stable/rest-api-traverse.html#rest-api-creating-a-paged-traverser

Это справедливо и для индексов.

Если вы считаете, что должен быть способ обратного просмотра страниц через обход и индексы, вы должны подать запрос на функцию на странице проблем github.

+0

Наверное, проще сделать это с помощью 'skip n limit mypher m' –

+0

Согласен, Майкл. Я хотел бы знать, почему DevD считает, что Cypher является неприемлемым решением. –

+0

Спасибо Джошу и Майклу, но кажется, что cypher будет медленнее, чем обход, хотя я также слышу, что cypher становится все лучше. Также снова, если я использую getNextResults() объекта pager neo4jphp, я бы получил нужную n-ю страницу через начальные n-1 итерации .. и это то, что смещение делает правильное сканирование через начальные # limit * (n-1) страницы для смещения и извлечения элементов #limit. Пейджер, который, как я полагаю, будет ленивой загрузкой, но будет иметь полные результаты в бэкэнд, но предельное смещение cypher прекратится, как только он получит ограниченные результаты. Пожалуйста, исправьте мое понимание, если потребуется ...... – DevD

 Смежные вопросы

  • Нет связанных вопросов^_^