우리는 Solr 3.6을 실행 중이며 결과 집합에 조건부 정렬을 적용하려고합니다. 명확히하기 위해 데이터는 입찰가 세트이며 현재 사용자의 입찰가로 정렬하기위한 옵션을 추가하여 일반 정렬 기능을 수행 할 수 없습니다 (입찰가는 쿼리를 실행하는 각 사용자마다 다르기 때문에). 결과 집합의Solr에서 조건부 정렬 3.6
서류는 "CurrentUserId"와 "CurrentBid"필드를 포함, 그래서 우리가 정렬하는 다음과 같은 필요가 있다고 생각 :
종류 = (? (CurrentUserId = 12345) CurrentBid : 0) 내림차순
이는 의사,하지만 아이디어는 SOLR의 currentUserId 사용자 ID (이 예에서는 12345)에 일치하는 경우, 그 종류 CurrentBid로, 그렇지 않으면 그냥 일처럼 보인다 0
를 사용한다는 것입니다 질의에 의한 정렬은 (또는 최소한 솔루션의 일부를 형성하는) 달성과 함께 갈 수있는 방법 일 수 있습니다. NG 쿼리 :
http://localhost:8080/solr/select/?q=:&sort=query(CurrentUserId:10330 AND CurrentBid:[1 TO *])+desc
이 비록 나를 위해 작동하는 것,하지 않고 다음과 같은 오류가 발생합니다 :
sort param could not be parsed as a query, and is not a field that exists in the index: ...
Solr documentation 쿼리 기능을 사용할 수 있음을 나타냅니다 Solr 1.4 이후부터 정렬 매개 변수로, 그래서 이것이 작동 해야하는 것 같습니다.
이 문제를 해결하는 방법에 대한 조언은 크게 감사하겠습니다.
그게 효과가 있었고 해결책에 조금 더 가까워졌습니다. 아직 입찰가가 정렬 순서에 영향을 미치는 요인을 파악해야하지만,이 답변을 좋은 시작으로 받아 들일 수는 있습니다. 당신의 도움을 주셔서 감사합니다. – Mun