Мышление Сфинкса: ошибка индексации - PullRequest
0 голосов
/ 03 января 2012

ОТВЕТИЛ: set_primary_key "QTLID" в модели, чтобы сообщить модели, что идентификатор pirmary не является идентификатором

Я получаю эту ошибку при рейке: ts index

Cannot automatically map attribute sphinx_internal_id in QtlTable 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

Я не могу понять, как это исправить.

Вот моя модель (обратите внимание, я не настраивал эту базу данных, поэтому не прыгайте на меня из-за ужасных соглашений):

class QtlTable < ActiveRecord::Base
   ...
    define_index do
      indexes :QTLID
      has :QTLName
    end    
end

Вот как выглядит схема для qtl_table:

create_table "qtl_table", :primary_key => "QTLID", :force => true do |t|
  t.string "QTLName",                     :limit => 60,       :default => "", :null => false
  t.string "Parent_1",                    :limit => 60,       :default => "", :null => false
  t.string "Parent_2",                    :limit => 60,       :default => "", :null => false
  t.string "Heritability",                :limit => 60,       :default => ""
  t.text   "Population_size",             :limit => 16777215
  t.string "Number_plants_bulked",        :limit => 10
  t.text   "Pop_high_score",              :limit => 16777215
  t.text   "Pop_low_score",               :limit => 16777215
  t.string "Loci_tested",                 :limit => 10,       :default => ""
  t.string "Intervals_associated",        :limit => 10,       :default => ""
  t.string "Interval_length",             :limit => 6,        :default => ""
  t.string "Interval_LOD_score",          :limit => 12,       :default => ""
  t.string "Interval_P_value",            :limit => 6,        :default => ""
  t.string "Interval_R2",                 :limit => 6,        :default => ""
  t.string "Genotypic_R2",                :limit => 6,        :default => ""
  t.text   "R2_Definition",               :limit => 16777215
  t.string "Percent_variation_explained", :limit => 6,        :default => ""
  t.string "First_entered",               :limit => 60,       :default => "", :null => false
  t.string "Last_update",                 :limit => 60,       :default => ""
  t.string "TraitName",                   :limit => 100,      :default => ""
  t.binary "in_new",                      :limit => 1
end

add_index "qtl_table", ["QTLName"], :name => "QTLName_index"
add_index "qtl_table", ["TraitName"], :name => "TraitName_index"

ОТВЕТИЛ: set_primary_key "QTLID" в модели, чтобы сообщить модели, что идентификатор pirmary не является ID

1 Ответ

1 голос
/ 18 июля 2012

set_primary_key "QTLID" в модели, чтобы сообщить модели, что идентификатор pirmary не является идентификатором

...