2012-10-11 2 views
1

나는 solr에서 검색하려고하는데 그 결과는 날짜순으로 정렬 된 다음 이름 필드에 정렬되어야합니다. 날짜가 다음 형식이므로 예상 결과를 얻을 수 있습니다 : 2012-09-07T13:31:35Z.Solr : 여러 개의 파일에 정렬 중 하나는 날짜입니다.

쿼리는 다음과 같이 진행됩니다

sort=date+desc,name+desc 

내가 정렬도 제 시간에 할 수 싶지 않아요.

+0

날짜 형식의 문제점은 무엇입니까? – Jayendra

+0

@Jayendra : 날짜가 붙어 있기 때문에 그 필드와 이름 필드를 사용하여 목록을 정렬 할 때 이름 필드 정렬은 중요하지 않습니다. 왜냐하면 같은 날짜에 두 개의 이름이 정확히 같은 시간을 가지지 않기 때문입니다. – user1737619

답변

1

날짜에 기능을 사용할 수 있습니다. 예 : 귀하의 경우

sort=floor(div(ms(date),86400000))+desc,name+desc 

이 와일드 카드에 대한 dynamicField 있어야한다는 사실을 명심해야합니까하지 라인을 다음을 의 schema.xml에 존재하지 않아야 즉 무시로 설정하고, 그 다음 인 경우 당신이 그것을 주석해야합니다 또는 당신이 또 다른 옵션도 숫자 표시와 같은 날짜 부분을 저장하는 것

<dynamicField name="*" type="ignored" multiValued="true" /> 
+0

Thnx 많이 작동했습니다. :) – user1737619

0

위와 같이 정렬 할 수 있습니다 전에 몇 가지 숫자 유형을 사용 (예 : 타임 스탬프, 문서의 날짜까지 과거의 어느 시점에에서 초 오전 12시).
타임 스탬프에 대한 일반적인 표준을 따르는 경우 유지 관리, 쿼리 및 타임 스탬프에서 날짜로 또는 그 반대로의 변환이 매우 쉬워야합니다.

관련 문제