Язык запросов Lucene и числовой диапазон - PullRequest
0 голосов
/ 26 мая 2018

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

value:[2 TO 6]

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

567986400000
567986400000
567986400000
536450400000
536450400000
599608800000
536450400000
567986400000

Меня интересует запрос числового диапазона, и, очевидно, например, значение Long 567986400000 не находится в диапазоне [2 TO 6].Похоже, поиск по диапазону - это строки, и я не знаю, как обойти его в моем приложении для различных числовых значений.

Как правильно использовать запросы числового диапазона в Lucene?

1 Ответ

0 голосов
/ 28 мая 2018

Чтобы получить правильный диапазон запросов, вам нужно использовать определенные поля из lucene.См. Поле javadoc

  • IntPoint: int индексируется для точных / диапазонных запросов.
  • LongPoint: длинный индекс для точных / диапазонных запросов.
  • FloatPoint: число с плавающей запятой, индексируемое для точных / диапазонных запросов.
  • DoublePoint: двойная индексация для точных / диапазонных запросов.

Поэтому вам нужно быть уверенным, что поле, в которое вы добавляете этот запрос, относится к одному из этих типов.Как вы сказали, вы используете сгенерированный Neo4j индекс Lucene.Должен быть параметр для создания полей такого типа, иначе вы не сможете выполнять запросы с правильным диапазоном.

...