2014-09-11 5 views
0

Есть ли эффективный способ обработки буквенно-цифровых диапазонов в lucene? Пример диапазонов,Запрос на буквенно-цифровой диапазон

  • 1 до 1 (включает в себя 1A, 1B .. 1Z)
  • 10À12 до 10À22 (включает 10À12, 10À13 .. 120A22)
  • от 1 до 10 (включает в себя 1А, 1В .. , 2А, 2В .., 9Z, 10) [не включает 10A]

у меня есть два подхода:

  1. Expand каждый диапазон и индекс всех возможных значений. Я думаю, что уникальные ценности не будут огромными.
  2. Индекс по низким и высоким значениям. Затем используйте запрос диапазона. Не уверен, насколько эффективен запрос диапазона в алфавитно-цифровых диапазонах.

Нужна экспертная консультация по этому вопросу, пожалуйста.

ответ

1

Надеюсь, вы согласны с тем, что ваши определенные правила очень обычны и не подходят для универсальной структуры, такой как Lucene. Например, почему диапазон [1..1] будет содержать буквы, но [1..10] не будет?

Я не знаю, возможно ли это с вашим набором данных, но если бы вы могли придумать правила, преобразовывая каждый элемент (включая элемент с буквами) в уникальный номер, используя какую-либо произвольную формулу, вы можете использовать эту формулу как при индексировании, так и при запросе. Это даже позволило бы согласовать диапазон.

+0

Числовой диапазон всегда может ожидать одну альфу в конце. Отредактировал вопросы. –