2017-07-22 3 views
0

Ich habe zwei ModellePg_search Migration nicht Spalte hinzufügen

class Post < ApplicationRecord 
    include PgSearch 
    multisearchable :against => [:title, :content] 

...

class Question < ApplicationRecord 

    include PgSearch 
    multisearchable :against => [:title, :content] 

Ich betreibe Befehl

rails g pg_search:migration:multisearch 

Seine diese Migration erzeugen

class CreatePgSearchDocuments < ActiveRecord::Migration 
    def self.up 
    say_with_time("Creating table for pg_search multisearch") do 
     create_table :pg_search_documents do |t| 

     t.text :content 
     t.belongs_to :searchable, :polymorphic => true, :index => true 
     t.timestamps null: false 
     end 
    end 
    end 

    def self.down 
    say_with_time("Dropping table for pg_search multisearch") do 
     drop_table :pg_search_documents 
    end 
    end 
end 

Seine Spalte nicht hinzufügen Titel. Warum?

Aktualisieren. Pg_Search verkettet Spaltentitel und Inhalt in einer Spalte - Inhalt. Ich verstehe nicht warum.

Rails 5.0.2

Rubin rubin 2.3.3p222 (2016.11.21 Revision 56859) [x86_64-Linux]

Antwort

1

pg_search ist, die verschiedenen Spalten in einem Verketten zur Vereinfachung der Verwendung von ts_vector.

Wenn Sie verschiedene Spaltengewichtung Wörter haben und die Suche ist komplizierter, als Sie am Ende des Prozesses alles synchronisieren und richtig bestellt bekommen müssen.

Ich würde empfehlen, die folgenden https://github.com/Casecommons/pg_search/issues/86 zu lesen, wenn Sie in Gewichtungs keywords Interesse (eine Lösung, in der Nähe des Endes vorgeschlagen wird) und Searching multiple models with pg_search

Verwandte Themen