Я получил ту же ошибку, и это было связано с тем, что я создавал 2 индекса для одного и того же поля, один как индекс, другой как атрибут.
Поскольку синтаксис Thinking Sphinx сильно отличается от обычного синтаксиса sphinx.conf, он может быть очень запутанным. Для обычного sphinx.conf вы должны создать обычные поля, а затем вы должны создать те же поля, что и целые числа CRC32, чтобы использовать их для взвешивания.
В Thinking Sphinx вам не нужно этого делать.
В случае account_id выше, я предполагаю, что вы создали его дважды, поэтому возникает ошибка, вам нужно создать его только один раз в блоке define_index
модели:
has account_id
Или, если вам нужно поле account_id для чего-то другого, создайте другой псевдоним для атрибута Sphinx:
indexes account_id
has account_id, :type => :integer, :as => :account_id_attribute
:type => :integer
не требуется, если это уже целое число, но я оставил его, потому что вы можете превратить нецелое поле в одно для целей взвешивания, например:
has "CRC32(media)", :type => :integer, :as => :media