2010-05-17 3 views
5

상위 레벨 앨범 오브젝트에 속하는 내 SOLR 인덱스 노래 오브젝트 내에 있습니다. 예입니다 : 내가 지금 할 수있는 일관련성에 의해 SOLR에서 돌아온 패싯을 정렬해야합니다.

<song> 
<album title>Blood Sugar Sex Magic</album title> 
<song title>Under the Bridge</song title> 
<description>A sad song about junkies</description> 
</song> 

노래에 대한 검색도 앨범 해당 키워드에 대한 안타를 포함하는 걸 보여줄 수 있도록 앨범 제목에면을 만드는 것입니다.

SOLR의 기본 동작은 패싯이 가장 적중 한 순서대로 표시된다는 것입니다. 그러나 내가 성취하고자하는 것은 그 앨범의 최고 히트 곡의 관련성에 따라 패싯 목록을 정렬하는 것입니다.

예를 들어 "sad"라는 단어를 검색하면 "Blood Sugar Sex Magic"에 대해 한 번 치는면이 표시 될 수 있으며 10 개의 히트가있는 "Sad Clown songs"이라는 앨범이있을 수 있습니다. "슬픈 광대 노래"가 가장 관련있는 노래로 등장하는 "다리 아래"일지라도 첫 번째 패싯으로 표시됩니다.

내 질문에 어떻게 모든 패싯을 다시 가져올 수 있습니까? 그렇다면 어떻게 그 내면에있는 곡의 관련성에 따라 주문할 수 있습니까? 기본 SOLR 코드를 변경하거나 확장해야한다면 어떻게 될 것입니까?

미리 감사드립니다.

답변

4

Solr은 사전 편집 순서 또는 개수로 패싯을 정렬 할 수 있습니다 (facet.sort parameter 참조).

다른 정렬 순서를 구현하려는 경우 SimpleFacets class부터 시작합니다.

1

결국 우리는 SOLR 소스 코드를 수정할 필요없이 solr을 쿼리하고 패싯을 요청한 다음 결과를 반복하는 방식으로이를 수행하는 가장 쉬운 방법을 결정했습니다.

이상적은 아니지만 지금은 작동합니다.

관련 문제