2011-02-11 2 views
0

나는 아주 잘 돌아가고있는 장고 사이트에서 스핑크스 검색을하고있다. 그것은 모든 종류의 쿼리에 대해 훌륭한 일치를 찾습니다. 나는 새로운 결과에 순위를 매기는데 힘을 보태주고 싶다. 수년간 많은 기사가 새로운 기사보다 높은 순위에 올 것입니다. 이전 기사는 검색어가 자주 포함되므로 관련성이 높지만 새 기사는 여전히 관련성이 높기 때문에 먼저 기사를 게재하고 싶습니다.스핑크스 검색에서 최신 기사에 더 많은 비중을 두는 방법은 무엇입니까?

나는 가중치에 관한 스핑크스 문서를 읽으려고했지만, 나는 정말로 이해하지 못하는 용어로 엄청나게 혼란스럽고 가득 차있다. 검색을 거의 그대로 유지하고 싶습니다. 최근 pub_dates를 사용하여 검색 결과 순위를 약간 올리고 싶습니다.

답변

4

당신이 좋아, 연산 식으로 분류 변경할 수 있습니다 SPH_SORT_EXPR 사용 :

$ CL-> SetSortMode (SPH_SORT_EXPR, "@weight + IF (PUB_DATE> 한 strtotime ('2011-01-01) (50) 0));..

이 표현에서

, 무게에 50을 얻을 것입니다 2011년 1월 일부터 게시 된 기사

+0

날짜가 항상 변경되기 때문에이 방법은 작동하지 않습니다. 그것은 임의의 마감일이 될 수 없습니다. 역사를 거슬러 올라가는 일반적인 슬라이딩 스케일이 필요합니다. – Apreche

0

$cl->SetSortMode (SPH_SORT_EXPR, "@id");이 당신에게 램프 제공 -보다 최근 더 무게를 간단하게 효과를 두 배로 늘리려면 @id * 2을 사용하거나 효과를 줄이려면 / 2을 사용하십시오.

1

$ cl-> SetSortMode (SPH_SORT_EXPR, "@id"); 이것은 당신에게 램프를 제공합니다 - 최근에 더 많은 무게. 간단히 은 효과를 두 배로 늘리기 위해 @id * 2를하거나 댐핑하기 위해/2를 수행합니다.

절대 값을 사용하면 결과를 예측하기가 어렵 기 때문에 이는 작동하지 않습니다. 예를 들어 각각 ID 100 및 ID 99000의 게시물 두 개를 포함하지만 ID 100에 대해 매우 우수한 가중치와 ID 99000에 대해 매우 나쁜 가중치가있는 ID는 99000입니다.