ThinkingSphinx, проблема с установкой атрибута `time` - PullRequest
0 голосов
/ 05 августа 2011

К сожалению, Сфинкс не может просто конвертировать time поле в атрибут

class Place << ActiveRecord::Base
#... relations

define_index
  #...
  has breakfast_start, :as => breakfast_start
end

rake ts:rebuild:

rake aborted!

Cannot automatically map attribute breakfast_start in Place to an
equivalent Sphinx type (integer, float, boolean, datetime, string as ordinal).
You could try to explicitly convert the column's value in your define_index
block:
  has "CAST(column AS INT)", :type => :integer, :as => :column

(See full trace by running task with --trace)

Смена синтаксиса на has "CAST(column AS INT)", :type => :integer, :as => :column также не исправляет это:

ERROR: index 'place_core': sql_range_query: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INT) AS `breakfast_start` FROM `places`

Кто-нибудь знает, как это исправить? Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 05 августа 2011

Полагаю, это плохой пример из TS - попробуйте UNSIGNED INT вместо INT.

1 голос
/ 06 июня 2012

Просто лишняя мысль.Стоит проверить, что в вашей базе данных есть столбец, который она пытается индексировать.Он может выдать ту же ошибку, если столбец не существует, что делает сообщение об ошибке немного неинформативным.

Запуск rake db: migrate исправил все это, так как я только что загрузил копию prod в разработку для тестирования и ничегомыслящих дельта-столбцов сфинкса были в этой копии базы данных.

Надеюсь, это поможет любому, кто найдет похожую проблему.

...