2010-11-26 4 views
0

documentation에 따르면 Zend Lucene은 사전 편집 방식으로 정렬해야합니다. 나는 이것이 사실이 아니라는 것을 알고있다. '평균 : [050 TO 300]'이라는 쿼리가 있으면 해당 범위의 모든 값을 반환하지만 값이 아닌 문서 ID에 따라 정렬합니다.Zend Lucene을 사용하여 범위 쿼리 정렬

find() 함수가 특정 열 (예 : $hits = $index->find($query, 'avg', SORT_NUMERIC, SORT_ASC);)로 정렬 할 수 있도록 추가 매개 변수를 받아 들일 수 있음을 발견했습니다. 그러나 $ 쿼리를 동적으로 생성하고 모든 검색을 '평균'별로 정렬하지 않으려합니다.

범위 검색을 수행 할 때 Lucene이 사전 식으로 결과를 자동으로 정렬하도록하려면 어떻게해야합니까? 그리고 그게 가능하지 않다면 어떻게 find 함수에 정렬 필드를 동적으로 추가합니까?

답변

1

$index->find(...)에서 결과를 얻은 후 $hits을 직접 분류하지 않는 이유는 무엇입니까? 좋아, 이것은 해결 방법과 매우 큰 결과에 대한 시간이 걸릴 것 같습니다, 그러나 이것은 대부분의 경우에 가장 쉬운 방법이라고 생각합니다.

+0

내가 선택한 쿼리 수만 정렬 할 때마다 그 쿼리를 수행 할 때마다 플래그를 설정하고 정렬/정렬없이 찾을 if/else를 찾는 경우에 플래그를 설정합니다. (예 :'if ($ flag) {$ hits = $ index-> ​​find ($ query);}') –

관련 문제