Сфинкс Scope ештеңеге оралмайды

Мен сфинкстің индекстейтін қарапайым көлемін жасауға тырысамын (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,
  }

Соңы

қалыпты көлемі:

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

сфинкс көлемі:

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

Дегенмен, мен оны өріс ретінде индекстейтіндіктен, логикалық өріс мақұлданған, оның мәнін String ретінде қарастыратынына сенімдімін. Қарамастан, сфинкс көлемінің мәнін «шын» немесе шын деп айтуға мүмкіндік бермейді - Theme.approval_score әлі күнге дейін Theme.approval қарағанда 0 нәтижені қайтарады. Мен қарапайым нәрсені жоғалттым деп үміттенемін.

0

1 жауаптар

мақұлданды

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

содан кейін

sphinx_scope(:approval_scope) {
  {:with => {:approved => true}}
}
4
қосылды
Мен сізді пайдалануыңыз керек екеніне сенімдімін: бар
қосылды автор anxiety, көзі
Дерлік: сфинкс ауқымында : approved => true пайдаланыңыз. Бірақ иә, сіз белгілі бір өріс емес, атрибуты болуды мақұлдайсыз.
қосылды автор pat, көзі