根据documentation,Zend Lucene应按字典顺序排序。我发现事实并非如此。如果我有一个查询'avg:[050 to 300]',是的,它将返回该范围内的所有值,但它将根据文档ID而不是值对它们进行排序。
我发现find()函数可以接受其他参数,允许我按特定列排序(例如$hits = $index->find($query, 'avg', SORT_NUMERIC, SORT_ASC);
)。但是,我正在动态创建$ query,并且不希望按'avg'对每个搜索进行排序。
当我进行范围搜索时,如何强制Lucene自动按字典顺序对结果进行排序?如果这不可能,我该如何动态地向查找函数添加排序字段?
答案 0 :(得分:1)
在获得$hits
的结果后,为什么不自行排序$index->find(...)
?好的,这看起来像是一种解决方法,对于非常大的结果集来说会非常耗时,但我想在大多数情况下这是最简单的方法。