Tag: pg search

如何在Heroku上使用postgres扩展? 以及如何处理他们的迁移?

我有一个包含pg_search和queue_classic gems的Rails应用程序。 这两个都使用PostgreSQL扩展,例如unaccent,pg_trgm和ps-something-something(对不起,不是我的开发机器,不记得了)。 我正在部署到Heroku,并且无法运行超出这些扩展的迁移 例如, def up execute “create extension unaccent” execute “create extension pg_trgm” end 我得到的印象是Heroku从这里支持这些https://devcenter.heroku.com/articles/full-text-search以及Heroku使用queue_classic https://github.com/ryandotsmith/queue_classic这一事实。 我一直无法找到任何解释如何在Heroku上使用这些postgres扩展的信息。 或者即使它们可用于共享数据库或仅用于专用数据库。 所以我的问题: 如何在Heroku上为我的应用程序提供这些扩展? 如何处理迁移,以便这些扩展可用于开发和测试环境,但如果Heroku限制此类执行,则不会破坏登台或生产或环境上的迁移。 真的很感激任何想法,特别是那些伴随相关信息/指示的指示。 谢谢

Rails 4.1.1 w / pg_search – “PG :: SyntaxError:ERROR:AS”或附近的语法错误“”

我从RoR 4.0.4更新到4.1.1以应用最新的安全补丁,看起来pg_search破了。 这是一个错误: PG :: SyntaxError:错误:“AS”处或附近的语法错误第1行:…… sh’,””|| unaccent(’banner’)|| ””)),0)))AS pg_sear … 我正在通过ajax进行搜索,但我不认为这是基于上述输出的问题。 我也在使用will_paginate,但我正在使用的分支应该用rails 4.1.x和pg_search修复以前的问题。 gem ‘will_paginate’, :git => ‘https://github.com/nazgum/will_paginate.git’ #until rails 4.1 will_paginate fixed 这是我正在执行搜索的代码模型: include PgSearch pg_search_scope :search, against: [:title, :body], using: {tsearch: {dictionary: “english”}}, ignoring: :accents def self.text_search(query) if query.present? search(query) else scoped end end 在RoR版本颠簸之前,一切都在工作 – 希望有人可能会有一些建议。 这是完整的堆栈跟踪: : SELECT COUNT(“photos”.*, ((ts_rank((to_tsvector(‘english’, […]

heroku还有其他搜索选项吗?

我即将推出一个测试网站,而heroku看起来很不错。 让我失望的唯一想法是,Websolr附加组件的唯一搜索选项是$ 20 / mth。 我确信Websolr很棒,但是在这个项目的早期阶段,我宁愿不去点那笔费用。 有没有任何免费的搜索选项,以配合heroku的Blossom(免费)计划。 我觉得这样的小气鬼!

使用pg_search gem for substring在轨道上进行PG全文搜索

我正在使用Pg全文搜索进行搜索。 由于我在rails上使用Ruby,我使用的是pg_search gem。 我如何配置它以给出子串的命中。 pg_search_scope :search_by_detail, :against => [ [:first_name,’A’], [:last_name,’B’], [:email,’C’] ], :using => { :tsearch => {:prefix => true} } 现在,如果子字符串在开头,它会给出一个命中,但如果中间的子字符串则不会给出命中 示例它为sdate@example.com命中,但不是example.com

正确的全文索引Rails / PostgreSQL / pg_search

我正在测试PostgreSQL全文搜索(使用pg_search gem)和solr(sunspot_solr gem)的性能。 对于400万条记录,我获得了13456毫秒的Tsearch和800毫秒的SOLR (即SOLR查询+数据库回溯)。 很明显,我需要索引,但我不知道如何创建一个全文搜索。 我调查并发现,对于全文搜索,我应该使用GIN索引。 execute “CREATE INDEX products_gin_title ON products USING GIN(to_tsvector(‘english’, title))” 但我正在搜索另外两列,我需要多值索引,我不知道如何实现它? 我对DB部分不是很熟悉。 我的搜索代码如下: @results = Product.search_title(params[:search_term]).where(“platform_id=? AND product_type=?”, params[:platform_id], params[:type_id]).limit(10).all 如何为此类情况创建正确的查询? 这是来自rails的搜索词车的 SQL输出。 Product Load (12494.0ms) SELECT “products”.*, ( ts_rank((to_tsvector(‘simple’, coalesce(“products”.”title”::text, ”))), (to_ tsquery(‘simple’, ”’ ‘ || ‘car’ || ‘ ”’)), 2) ) AS pg_search_rank FROM “products” WHERE (((to_tsvector(‘simple’, […]

如何在Rails中的关联模型上配置pg_search multisearch?

我正在将pg_search添加到Rails应用程序中。 我并不完全理解配置,并且会欣赏在正确的方向上轻轻推动。 首先,我已经在我的应用程序上或多或少地设置并运行了多模型站点。 但我想扩展它以搜索相关模型。 例如,我有制造商,汽车,模型类。 目前,如果我搜索“福特”,则只返回制造商。 我还想退回所有相关的汽车(属于制造商)和模型(属于汽车)。 我可以看到如何做一个范围搜索 class Car pg_search_scope :manufactured_by, :associated_against => { :manufacturer => [:name] } end 但是,如果我尝试在多元素上执行此操作,则无效 class Car include PgSearch multisearchable :against => [:name], :associated_against => { :manufacturer => [:name] } end 它不会产生错误,它根本不会获取相关记录。 我有一种感觉,我错过了一些基本的东西,我理解这一切是如何组合在一起的。 如果有人能帮助我理解这一点,或者指出一个良好的信息来源,我真的很感激。 我已经浏览了关于github和相关Railscast的信息,但我仍然遗漏了一些东西。

如何将PGSeaerch结果链接到嵌套资源中的索引页面?

我终于想出了如何实现pg_search的multiisearchfunction。 但是我在制作一个可用的搜索页面时遇到了麻烦,该页面显示了返回相应嵌套页面的链接。 如何传递正确的ID,以便链接到嵌套视图。 所以类似于link_to myapp.com/artists/1/albums 到目前为止,我得到了这个错误(我似乎无法通过艺术家ID) No route matches {:controller=>”albums”, :artists=>nil} Rails的新手请帮忙:) CONTROLLERS class ResultsController params[:page] ) @artists = PgSearch.multisearch(params[:query]).where(searchable_type: “Artist”) @albums = PgSearch.multisearch(params[:query]).where(searchable_type: “Album”) end end VIEWS Artists #### How can I link to the Albums index page Albums ####How can I link to the Albums index page 楷模 class Artist :albums include PgSearch […]