유스 케이스 다루는 것은 이것이다 :스핑크스 응용 프로그램 전체 검색을 생각하고 결과
내가 다음 검색 결과 페이지에 본질적으로별로 결과를 정리 한 텍스트 상자에서 내 사용자 검색을 할 수 싶습니다.
예를 들어 Thinking Sphinx에 대해 구성된 모델이 다음과 같습니다 (Post
, Comment
및 User
). (제 상황에서는 약 10 개의 모델이 있지만 StackOverflow의 명확성을 위해서만 3 개만있는 것 같습니다.)
비슷한 검색을 수행 할 때 : ThinkingSphinx.search 'search term', :classes => [Post, Comment, User]
결과를 반복하는 가장 좋은 방법은 모르겠지만 내 페이지의 섹션을 빌드하십시오. ?
나의 첫번째 성향은 같은 것을 할 수 있습니다 :
- 검색 설정 반환 된 결과를 통해
- 반복 처리를 실행하고 result.is_a을 (ClassType의)
- 하는 ClassType에 기반을 추가, 1 ~ 3의 배열에 항목 -
@match_posts
,@matching_comments
, 또는@matching_users
- 아래 내보기에 그 3 개 인스턴스 변수를 전달
더 효과적인 방법이 있습니까? 감사합니다.
안녕하세요 Pat, 답변 해 주셔서 감사합니다. 나는 당신의 두 번째와 세 번째 단락에 의해 조금 혼란스러워합니다. 2 단락에 관해서는, 나는 사용자를 위해 가능한 한 쉬운 검색을하려고 노력하고있다. 1 수색 바에 무엇이든 입력하고 본질적으로 수업별로 정리 된 결과를 봅니다. 즉 검색 결과와 일치하는 게시물, 검색 결과와 일치하는 작성자 이름, 검색 등과 일치하는 의견 등. 내 질문은 내가 어떻게 효율적으로 & 효율적으로 결과를 정렬합니까? 3 단락에서는 2 단락과 다를 바가 없습니다 ... 단지 [email protected] render와 다른 곳을 비교해보세요. –
좋아, 클래스 이름별로 정렬 한 다음 각 클래스 집합 내에서 관련성을 확인하려는 것 같습니다. http://groups.google.com/group/thinking-sphinx/browse_thread/thread/813de527037534bd/6c6d862554d7eb64?lnk=gst&q=sort+by+class#6c6d862554d7eb64에는이를 수행하는 방법에 대한 예제가 있습니다. – pat
그리고 나서 인수 (검색 결과)를 취해 특정 부분을 렌더링하는 도우미가 있습니다. 물론, Rails가 기대하는 것과 일치하도록 부분 이름을 지정할 수 있습니다 ('app/views/model_name/_model_name.html.erb'). 대신'render result'를 호출하십시오. – pat