X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/2cf4ea4fe0e1eda66d510983bf27fb9836af5ff4..10d70a1c08984a699ac3f6b893fe6d2141c5ad9e:/services/api/app/models/arvados_model.rb diff --git a/services/api/app/models/arvados_model.rb b/services/api/app/models/arvados_model.rb index b93c715ca9..8c8ad8e254 100644 --- a/services/api/app/models/arvados_model.rb +++ b/services/api/app/models/arvados_model.rb @@ -431,6 +431,18 @@ class ArvadosModel < ApplicationRecord end.map(&:name) end + def self.full_text_coalesce + full_text_searchable_columns.collect do |column| + is_jsonb = self.columns.select{|x|x.name == column}[0].type == :jsonb + cast = (is_jsonb || serialized_attributes[column]) ? '::text' : '' + "coalesce(#{column}#{cast},'')" + end + end + + def self.full_text_trgm + "(#{full_text_coalesce.join(" || ' ' || ")})" + end + def self.full_text_tsvector parts = full_text_searchable_columns.collect do |column| is_jsonb = self.columns.select{|x|x.name == column}[0].type == :jsonb