0
0
Fork 0

Make account search blazing fast and rank followers/followees higher in the results

This commit is contained in:
Eugen Rochko 2017-03-17 20:47:38 +01:00
parent 22f9399cc3
commit ad0d82d3ce
6 changed files with 50 additions and 15 deletions

View file

@ -0,0 +1,9 @@
class AddSearchIndexToAccounts < ActiveRecord::Migration[5.0]
def up
execute 'CREATE INDEX search_index ON accounts USING gin((setweight(to_tsvector(\'simple\', accounts.display_name), \'A\') || setweight(to_tsvector(\'simple\', accounts.username), \'B\') || setweight(to_tsvector(\'simple\', coalesce(accounts.domain, \'\')), \'C\')));'
end
def down
remove_index :accounts, name: :search_index
end
end

View file

@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema.define(version: 20170304202101) do
ActiveRecord::Schema.define(version: 20170317193015) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@ -43,6 +43,7 @@ ActiveRecord::Schema.define(version: 20170304202101) do
t.boolean "silenced", default: false, null: false
t.boolean "suspended", default: false, null: false
t.boolean "locked", default: false, null: false
t.index "(((setweight(to_tsvector('simple'::regconfig, (display_name)::text), 'A'::\"char\") || setweight(to_tsvector('simple'::regconfig, (username)::text), 'B'::\"char\")) || setweight(to_tsvector('simple'::regconfig, (COALESCE(domain, ''::character varying))::text), 'C'::\"char\")))", name: "search_index", using: :gin
t.index ["username", "domain"], name: "index_accounts_on_username_and_domain", unique: true, using: :btree
end