2013-02-08 3 views
0

Solst에 액세스하기 위해 Sunspot을 사용하는 RoR 애플리케이션이 있습니다. 모든 최신 버전.Solr/Sunspot으로 해시 값으로 정렬

색인 된 문서에는 키가 user_id 인 해시가 있으며 값은 사용자가 처음으로 문서를 본 시간입니다.

사용자의 날짜 값으로 검색 결과를 정렬하려면 어떻게합니까? 나는 이것이 관련된 데이터의 양 때문에 RoR보다는 Solr에서 수행되기를 바랍니다. RoR에서 정렬을 수행하기 위해 모든 결과를 끌어 오면 꽤 좋지 않을 것입니다.

Solr에서 기본적으로 가능합니까? 그렇다면 Sunspot도이를 처리 할 수 ​​있습니까?

답변

0

Solr REST API에서 시간 필드별로 정렬하려면 sort 쿼리 매개 변수를 추가하기 만하면됩니다. 예를 들어 문서에 액세스 할 때 user_id 1, 2 및 3을 정렬하려면 sol355에 대한 http://localhost:8983/solr/CORE/select?q=user_id:(1 OR 2 OR 3)&sort=timefield desc 과 같은 쿼리를 발행 할 수 있습니다.

나는 태양 흑점이나 루비를 모르지만, http://sunspot.github.com/에서 검색 예제를보고 나는 sth 할 수 있다고 생각한다. 이거?

Post.search do 
    user_id '1 OR 2 OR 3' 
    order_by :timefield, :desc 
end 
+0

문제는 각 사용자마다 고유 한 액세스 시간이 있으며 문제의 특정 사용자에 대해 해당 값으로 정렬해야한다는 것입니다. 이 솔루션이 내 요구 사항을 처리하는 방법을 모르겠습니다. – Eric

+0

솔라 문서 안에 필드로 해시를 저장할 수 있다는 것을 알지 못했습니다. int, float, string, text 및 multi-valued fields와 같은 간단한 유형 만 저장할 수 있다고 생각했습니다. 나는 너의 qn을 오해했다. 나는 궁금해서 문서에 해시를 저장하는 방법을 알려줄 수 있습니까? – arun

+0

당신이 옳다고 생각합니다. 내가 각 문서의 사용자 별 속성을 기반으로 사용자별로 다른 정렬을 가질 수있는 방법이 있습니까? – Eric