Ich bin auf Ryan Bates ' bei der Verwendung der integrierten PostgresQL-Volltextsuche in Rails folgen. Ich benutze derzeit pg_search gem un-indexed kein Problem, aber ich muss die Leistung verbessern. Ich benutze Tsvector mit "Englisch" Wörterbuch angegeben.Rake db nicht ausführen: migrieren ein tsvector GIN-Index für Postgresql in Rails mit Railscast Beispiel
ich PostgreSQL Version bin mit Anweisungen 9.1.4
Per Ryan, ich habe eine neue Migration mit diesem Code ausführen zwei neue Indizes angeben, die Ich mag würde erstellen. Hier ist das Schema zuerst:
create_table "references", :force => true do |t|
t.string "title"
t.string "type"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.string "public_url"
t.string "content_type"
t.integer "file_size"
t.text "overview"
t.text "body"
t.text "full_text"
t.integer "folder_id"
end
Meine Migration wie folgt aussieht:
def up
execute "create index references_title on references using gin(to_tsvector('english', title))"
execute "create index references_full_text on references using gin(to_tsvector('english', full_text))"
end
def down
execute "drop index references_title"
execute "drop index references_full_text"
end
Ich habe auch voraus gegangen und unkommentiert die SQL-Option in application.rb
config.active_record.schema_format = :sql
ich weiter um den gleichen Rake abzureißen Fehler:
== AddSearchIndexesToReferences: migrating ===================================
-- execute("CREATE INDEX references_title on references using gin(to_tsvector('english', title))")
rake aborted!
An error has occurred, this and all later migrations canceled:
PG::Error: ERROR: syntax error at or near "references"
LINE 1: CREATE INDEX references_title on references using gin(to_tsv...
^
: CREATE INDEX references_title on references using gin(to_tsvector('english', title))