Сортировать запрос диапазона с помощью Zend Lucene - PullRequest
0 голосов
/ 26 ноября 2010

Согласно документации , Zend Lucene должен сортировать лексикографически.Я считаю, что это не тот случай.Если у меня есть запрос 'avg: [050 TO 300]', он вернет все значения в этом диапазоне, но отсортирует их по идентификатору документа, а не по значению.

Я обнаружил, чтоФункция find () может принимать дополнительные параметры, что позволяет мне сортировать по определенному столбцу (например, $hits = $index->find($query, 'avg', SORT_NUMERIC, SORT_ASC);).Однако я создаю $ query динамически и не хочу сортировать каждый поиск по 'avg'.

Как заставить Lucene автоматически, лексикографически сортировать результаты, когда я выполняю поиск по диапазону?И если это невозможно, как мне динамически добавить поле сортировки в функцию поиска?

1 Ответ

1 голос
/ 28 февраля 2011

Почему бы вам не отсортировать $hits самостоятельно после получения результата от $index->find(...)? Хорошо, это выглядит как обходной путь и потребует много времени для очень больших наборов результатов, но я думаю, что это самый простой способ в большинстве случаев.

...