2009-11-09 4 views
3

좋은 하루,동일한 점수로 lucene의 기본 정렬을 적용하는 방법은 무엇입니까?

내가 예를 들어 다음과 같은 필드

Person_name - Birthday 
Jordan - 2009-06-15 
Marc - 2009-01-01 
Marcos - 2009-01-01 
Marcissh_something_something - 2009-06-15 
Marcos - 2009-12-31 

그리고 PERSON_NAME 검색에 따라이 문서가있는 경우 : 마크 * 내가 가지고 다음과 같은 점수 (여기 점수은 가정)

Person_name - Birthday - Score 
Jordan - 2009-06-15 - 0.0 
Marc - 2009-01-01 - 1.0 
Marcos - 2009-01-01 - 0.8 
Marcissh_something_something - 2009-06-15 - 0.1 
Marcos - 2009-12-31 - 0.8 

결과를 먼저 관련성별로 정렬 한 다음 내림차순으로 같은 관련성 (점수)을 기준으로 정렬하여 결과를 검색 할 수 있습니다. 결과는

입니다.
Person_name - Birthday - Score 
Marc - 2009-01-01 - 1.0 
Marcos - 2009-12-31 - 0.8 
Marcos - 2009-01-01 - 0.8 
Marcissh_something_something - 2009-06-15 - 0.1 

감사

답변

1

저는 ScoreDocComparator를 추천 할 예정 이었지만 지금은 사용되지 않습니다. FieldComparator을 사용할 수 있습니다. TopFieldCollector을 만들고 원하는대로 Sort을 정의해야합니다. 나는 이것이 좋은 예를 찾을 수 없었기 때문에 오히려 새로운 것이라고 믿습니다.

+0

lucene 2.4.1을 사용하고 있기 때문에 아마도 ScoreDocComparator ...와 함께 갈 것입니다.하지만 정확히 어떻게 사용합니까? :-) –

+0

이 경우 제 대답을 참조하십시오 : http://stackoverflow.com/questions/8517/lucene-exact-ordering –

1

한번에 검색 결과를 검토 한 후 동일한 점수 자신있는 사람을 정렬합니다. 당신은 검색 결과의 자연 필드와 점수를 비교하는 비교자를 사용할 수 있습니다.

관련 문제