2016-09-30 9 views
1

내가solr의 고정 된 위치에서 일부 항목을 사용하여 사용자 정의 정렬 순서를 구현하는 방법은 무엇입니까?

|  BOX  | RANK | 
|----------------|--------| 
|  Box1  | 1 | 
|  Box2  | 2 | 
|  Box3  | 3 | 
|  Box4  | 4 | 
|  Box5  | 5 | 

같은 MySQL의 테이블 서랍의 목록을 이름 서랍이 그럼 난 (이 상자의 일부를 말한다 다른 소스는 보석이 포함되어 있습니다 만, 특정 위치에 배치해야이 테이블 수납장를 호출 할 수 있습니다).

|  BOX  | RANK | 
|----------------|--------| 
|  Box1  | 4 | 
|  Box3  | 1 | 
|  Box5  | 3 | 

I가 준수해야하는 특정 제한이 있습니다

I cannot write a stored proc on these tables 

나는 수납장의 위치가 호출 순서에 관계없이 고정되어야한다 SOLR에 박스의 목록을 얻으려면 (오름차순/내림차순). 예를 들어,

오름차순으로는 다음과 같습니다

|  BOX  | RANK | 
|----------------|--------| 
|  Box3  | 1 | 
|  Box2  | 2 | 
|  Box5  | 3 | 
|  Box1  | 4 | 
|  Box4  | 5 | 

내림차순은 다음과 같습니다

|  BOX  | RANK | 
|----------------|--------| 
|  Box3  | 1 | 
|  Box4  | 2 | 
|  Box5  | 3 | 
|  Box1  | 4 | 
|  Box2  | 5 | 

내가 다이 하이드로에서 SOLR에 이러한 테이블을 가져, 현재 방법에 대해 생각 떨어져 내 머리를 추출하고 이것을하기 위해. 나는 마음 속에 두 가지 선택권을 가지고 있지만, 둘 다 매우 명확하지 않으며, 여러분이 나를 도와 주길 바랍니다. 내 옵션은 다음과 같습니다.

  1. 정확한 순서를 알려줄 것입니다. http://sujitpal.blogspot.in/2011/05/custom-sorting-in-solr-using-external.html

에 따라 할 수있는 세 번째 방법은 거기에 다음 링크에 설명 된대로

  • 는 CustomFieldComparator 쓰기 (우리가 가진 모든 다이 하이드로의 선택 쿼리이기 때문에 이것은 마스터 레벨 쿼리의 기술을 필요) 원하는 결과를 얻으시겠습니까?

    UPDATE :

    나는 내림차순 기준없이 작동 할 수 있지만, 난 여전히 상승하는 일이 필요합니다. 나는 당신이 편안 언어에서 사용자 지정 인덱서를 만들 것

  • 답변

    0

    :-)

    덕분에 (https://wiki.apache.org/solr/IntegratingSolr 참조 - 내가 파이썬에서 일을하고 mysolr 사용)이 같은 더 많은 유연성을 필요로 할 때. 어쩌면 두 개의 필드를 만들 수 있는데, 하나는 "오름차순"이고 다른 하나는 "내림차순"입니다. 순위가있는 목록을 만들고 역순으로 순위를 정한 다음 두 번째 소스를 쿼리하여 두 목록의 우선 순위를 지정하거나 데이터를 처리하기 위해 수행해야하는 작업을 수행합니다. 실현 가능성은 색인을 생성해야하는 레코드 수에 달려 있다고 생각합니다. 그런 다음 각 레코드를 처리하고 목록에서 두 개의 순위 필드에 대한 정보를 추가 한 다음 일괄 적으로 Solr 서버로 보냅니다.