Индекс не будет использоваться с вашим запросом по двум причинам:
- Вы не используете
endDate
напрямую (вы передаете его функции). - Вы не указали метку
Dates
в своем шаблоне MATCH
.
Если все ваши строки endDate
имеют тот же точный формат, что и '2020-06-20T18: 29: 04.116Z ', тогда фактически нет необходимости использовать функцию datetime()
(которая также замедляет запрос) - вы можете просто сравнить строки напрямую.
Например,Если приведенное выше предположение верно, тогда этот запрос должен использовать ваш индекс и быть очень быстрым:
MATCH (user)-[:PROFILE]->()-[:DATES]->(dates:Dates)
WHERE '2019-10-19T18:29:04.116Z' < dates.endDate < '2020-06-20T18:29:04.116Z'
RETURN user
ORDER BY dates.endDate ASC