Сфинкс сфера ничего не возвращая - PullRequest
0 голосов
/ 28 октября 2011

Я пытаюсь создать простую область, которую sphinx будет индексировать (Ruby on Rails).Обычная область возвращает то, что должна, область сфинкса не возвращает результатов.

define_index do
  # fields
  indexes :name
  indexes author
  indexes description
  indexes list_of_tags
  indexes approved

  # attributes
  has created_at, updated_at, downloads

  # delta indexing
  set_property :delta => true

  # weighting fields
  set_property :field_weights => {
    :name => 10,
    list_of_tags => 6,
    author => 5,
    description => 4,
  }

end

нормальная область:

scope :approved, where(:approved => true)

область сфинкса:

sphinx_scope(:approval_scope) {
  {:conditions => {:approved => "true"}}
}

Approved является логическим полем, однако, поскольку я индексирую его как поле, я считаю, что его значение рассматривается как String.Независимо от того, что значение области сфинкса равно «true» или «true», разницы нет - Theme.approval_score по-прежнему возвращает 0 результатов в отличие от Theme.approval.Надеюсь, мне не хватает чего-то простого ..

1 Ответ

4 голосов
/ 29 октября 2011

сделать утвержденным с

define_index do
  # fields
  ...
  has approved
  ...
end

, затем

sphinx_scope(:approval_scope) {
  {:with => {:approved => true}}
}
...