2011-05-03 2 views
1

Rails 3.0 애플리케이션에서 Thinking Sphinx를 사용하고 있고 검색 결과를 렌더링 할 때 "excerpts"및 "matching_fields"메소드를 활용하려고합니다. 나는 다음과 같은 한 검색 컨트롤러에서스핑크스 : matching_fields 메소드가 nil을 반환 함

class Journal < ActiveRecord::Base 
    has_many :entries 

    define_index do 
    indexes description # This is an attribute of the Journal class 
    indexes entries.note, :as => :entry_note 
    # ...additional indexes 

    set_property :delta => true 
    end 
end 

:

내보기에서
class SearchResultsController < ApplicationController 
    def index 
    @search_results = Journal.search params[:q], :star => true, :match_mode => :fieldmask 
    respond_with(@search_results) 
    end 
end 

내가 에만 필드의 발췌를 포함하는 검색 결과를 구축하고자하는 나는 다음과 같은 모델을 가지고 말 검색 용어와 일치하는 예를 들어, 검색 용어가 : 설명 필드와 일치하는 경우, 강조 표시된 검색어와 함께 설명의 발췌 부분을 표시하려고합니다. 그러나 검색 결과가 저널 항목의 메모 (: entry_note 필드) 중 하나와 일치하는 경우 검색 결과에 강조 표시된 검색어의 발췌 부분이 표시됩니다.

저는 this regarding excerptsthis regarding matching_fields을 읽었지만 matching_fields 메서드는 항상 nil을 반환하며 소스 코드에서도 다른 설명서를 찾을 수 없었습니다. matching_fields는 무엇을 반환해야합니까?

감사합니다.

답변

0

Matching_fields는 필드 이름이있는 문자열 배열을 반환합니다. 특정 검색 결과마다 호출되어야합니다. 그것을 작동 시키려면, 다음과 같이 설정해야합니다 : rank_mode to : fieldmask, match_mode.