Я использую Thinking Sphinx в приложении на Rails 3.0 и пытаюсь использовать методы "excerpts" и "Match_Fields" при отображении результатов поиска. Скажем, у меня есть следующая модель:
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
На мой взгляд, я хотел бы построить результат поиска, который включает в себя выдержку из только поля , которое соответствует поисковому запросу. Например, если поисковый термин соответствует полю: description, я хотел бы отобразить отрывок описания с выделенным поисковым термином. Однако, если поиск соответствовал одной из заметок записи в журнале (: поле entry_note), я бы хотел, чтобы в результате поиска отображалась выдержка из этой заметки с выделенным поисковым термином.
Я прочитал , что касается отрывков , и , что касается match_fields , однако методы Match_Fields всегда возвращают ноль, и я не смог найти другую документацию для него. (даже в исходном коде). Что должны вернуть match_fields?
Спасибо!