Zend Lucene Поиск по лексикографическому диапазону, возвращающий несущественные результаты - PullRequest
0 голосов
/ 19 ноября 2010

Я использую Zend Lucene для создания функции поиска для моего сайта. Все хорошо.

Понимание того, что Lucene выполняет поиск лексикографически (например,
1
110
1111444
2
3
4
499238492834798
5
и т.д.)

Я дополнил свои номера до 3 цифр (в диапазоне от 010 до 990).

Когда я выполняю поиск диапазона значений от 110 до 160 (например, имя поля: [от 110 до 160]), он возвращает результаты для 040! Логически это неверно, так как все числа начинаются с 1 (хотя он все равно будет искать 11, 12, 13, 14, 15 и 16), поэтому не должен соответствовать этому результату!

Почему это происходит, и как мне помешать этому?

[править] Я неправильно прочитал документацию Zend. Запрос диапазона, который сортирует результаты лексикографически. Но моя проблема сохраняется.

1 Ответ

1 голос
/ 19 ноября 2010

Я не могу выяснить, почему это так, поэтому я делаю цикл:

for ($i = 0; $i < 50; $i + 10)
{
 $queryString .= 'fieldname:' . ($term + $i) . ' ';
}

создает запрос, такой как:

fieldname:110 fieldname:120 fieldname:130 fieldname:140 fieldname:150 fieldname:160

, который выполняетверните результаты, которые я хочу точно.

...