2011-12-01 4 views
1

새 앱용 검색 엔진을 구현하려고합니다.Solr + 건초 더미 검색

앱을 사용하면 항목 평가 (+1 또는 -1) - 항목에 + ve 또는 -ve 점수 부여.

사람들이 항목을 검색 할 때 등급을 고려하여 이에 따라 결과를 주문하고 싶습니다. 항목이 일치하는 경우 표시됩니다. 그러나 높은 점수와 일치하는 경우 결과를 조금 높여야합니다.

정말 좋은 성냥이 높은 점수와 상당히 좋은 성냥을 이기기 위해 나머지 부분과 함께 가중되어야합니다. 즉, 내 제목을 조금 늘렸습니다.

어떤 방법으로도 Solr에 머물러 있지 않습니다.

답변

0

Solr을 사용하면 차이가있는 문서로 필드를 유지 관리 할 수 ​​있습니다.
차이는 총 + 1ve와 -1ve 사이 일 수 있습니다.

Solr을 사용하면 function queries을 사용하여 필드 값을 높일 수 있습니다.
다른 필드보다 점수가 높은 문서로 차이 필드의 부스트를 쿼리 할 수 ​​있습니다.

색인 생성에서이 차이가 자주 변경되므로 각 문서를 매번 업데이트해야합니다. Solr은 단일 필드의 업데이트를 허용하지 않으므로 차이 필드의 증분 업데이트를 처리해야합니다.

우려되는 사항이 있으면 ExternalFileField을 사용해보세요.
색인의 외부 순위, 인기도 등과 같은 특정 필드의 문서를 별도의 파일에 매핑 할 수 있습니다.
파일을 업데이트하고 변경 내용을 반영하기 위해 인덱스를 커밋 할 수 있습니다.
필드를 함수 쿼리와 함께 사용하여 필요에 따라 결과를 높일 수 있지만 많은 제한이 있습니다.

+0

감사합니다. 답변을 기다리는 동안 발견되었습니다. 추가 부스트 기능을 사용했습니다 :? q = 검색 + 텍스트 & bf = 'ord (순위)^10 - 10을 부스트하면 작동하는 것입니다! –

0

순위를 저장하는 필드로 결과를 주문할 수 있습니다.

sqs.filter(content='blah').order_by('rating') 
+0

그러면 부스트를 고려하여 등급 값을 고려하지 않고 등급으로 결과를 주문할 것입니다. Solr 점수가 상대적으로 낮더라도 높은 평점을 가진 모든 경기가 최상위 순위에 올 것입니다. –

관련 문제