Thinking Sphinx: неверный индекс в поле двойной точности

Пытаясь добавить индекс в поле, содержащее ruby ​​float (представленное как двойная точность в Postgres), я получаю следующую ошибку при перестроении индекса:

indexing index 'user_core'...
ERROR: index 'user_core': sql_range_query: ERROR:  invalid input syntax for type double precision: ""
LINE 1: ..._name_sort", COALESCE("users"."average_rating", '') AS "av...

Строка, которую я добавил в модель, вызвавшую появление этой ошибки, выглядит следующим образом:

indexes :average_rating, :sortable => true, :type => :float

Не удалось найти кого-либо, у кого возникли проблемы с индексацией поплавков, путем поиска в Google. Это баг, или я как обычно упускаю что-то очевидное? :)


person rogerkk    schedule 16.09.2011    source источник


Ответы (1)


Вероятно, это связано с тем, что это не строковый столбец, попробуйте следующее:

has :average_rating, :sortable => true, :type => :float

Чтобы узнать больше о различиях между «имеет» и «индексы», прочитайте это: http://freelancing-god.github.com/ts/en/sphinx_basics.html

person sren    schedule 17.09.2011
comment
Спасибо Саймон. Я только что понял, что это был просто идиот, и исправил это сам, а теперь пришел сюда, чтобы обновить свой вопрос. :) - person rogerkk; 17.09.2011
comment
Также: нет необходимости в :sortable => true - это атрибут, его всегда можно отсортировать. - person pat; 18.09.2011