У меня есть запрос, возвращающий все узлы определенного типа. Я пытаюсь вернуть только 10 результатов, которые равномерно распределены по всему набору.neo4j: есть ли способ пропустить результаты, основанные на общей длине результата
Я пробовал:
$START t=node(*)
MATCH (image:Image) RETURN image.name ORDER BY image.name
SKIP toInt(count(image.name)/10);
Однако это возвращает сообщение об ошибке, говорящее, что я не разрешено использовать переменные в SKIP.
Я думал, что я мог бы попробовать и повторно запустить все заявление в функции счета, то:
START t=node(*)
MATCH (image:Image) RETURN image.name ORDER BY image.name
SKIP toInt(count(MATCH (image:Image) RETURN image.name)/10);
Однако это возвращает недопустимую ошибку ввода:
Invalid input 'R': expected whitespace, comment, '.', node labels, '[', "=~", IN, STARTS, ENDS, CONTAINS, IS, '^', '*', '/', '%', '+', '-', '=', "<>", "!=", '<', '>', "<=", ">=", AND, XOR, OR, ',' or ')' (line 3, column 38 (offset: 112))
"SKIP toInt(count(MATCH (image:Image) RETURN image.name)/10);"
^
Если вы только пытаетесь вернуть 10 результат, то почему бы не использовать 'LIMIT 10'? –
@ GaborSzarnyas limit 10 возвращает только 10, все изображения сортируются по времени, и я хочу захватить 10 образцов с одинаковой дистанции (т. Е. Если бы у меня было 50 изображений в моем наборе, я бы хотел вернуть каждое пятое изображение) – user3297011
Хорошо! Следующий вопрос: какую версию вы используете? Начиная с Neo4j 2.0+, вам не нужно предложение 'START' (вы никогда не используете значение' t'). –