Сортировать запрос диапазона с помощью Zend Lucene
Согласно документации, Zend Lucene предполагается сортировать лексикографически. Я считаю, что это не тот случай. Если у меня есть запрос "avg:[050 TO 300]", то да, он вернет все значения в этом диапазоне, но отсортирует их по идентификатору документа, а не по значению.
Я обнаружил, что функция find() может принимать дополнительные параметры, что позволяет мне сортировать по определенному столбцу (например, $hits = $index->find($query, 'avg', SORT_NUMERIC, SORT_ASC);
). Тем не менее, я создаю $query динамически и не хочу сортировать каждый поиск по 'avg'.
Как заставить Lucene автоматически сортировать результаты лексикографически при поиске по диапазону? И если это невозможно, как мне динамически добавить поле сортировки в функцию поиска?
1 ответ
Почему бы вам не отсортировать $hits
самостоятельно после получения результата от $index->find(...)
? Хорошо, это выглядит как обходной путь и потребует много времени для очень больших наборов результатов, но я думаю, что это самый простой способ в большинстве случаев.