Neo4j ручные / явные индексы и запросы нестрокового диапазона - PullRequest
0 голосов
/ 26 мая 2018

Мне удалось портировать приложение Neo4j 3.4.0 для использования ручных индексов и процедур APOC вместо запросов к свойствам отношений индексов.Все работает как шарм, кроме одной последней вещи - я столкнулся с проблемой с нестроковыми запросами диапазона Lucene.

Они не работают должным образом Язык запросов Lucene и числовой диапазон

Например:

Я применяю следующий предикат запроса Lucene по порядкучтобы получить все включающие числа в диапазоне 2 to 6:

value:[2 TO 6]

и получить документы со следующими значениями:

567986400000
567986400000
567986400000
536450400000
536450400000
599608800000
536450400000
567986400000

, что явно не соответствует ожиданиям.

Есть ли в Neo4j / APOC что-нибудь, что я могу сделать, чтобы заставить его работать должным образом?

1 Ответ

0 голосов
/ 01 июня 2018

Если вы читаете документы, там написано

«Сортировка выполняется лексикографически»

См. «Запросы диапазона» в разделе: https://lucene.apache.org/core/6_4_1/queryparser/org/apache/lucene/queryparser/classic/package-summary.html

Вы должны проиндексировать данныев, например, DoubleDocValuesField вместо StringField / TextField и используйте соответствующий запрос Lucene, например PointRangeQuery

...