ruby-on-rails – 如何启用:pg_search多搜索的tsearch词典?
发布时间:2020-12-17 03:53:55 所属栏目:百科 来源:网络整理
导读:我正在将pg_search添加到Rails应用程序中.我正在按照 github和 railscast的说明进行操作,但我遇到了一个问题. 我正在建立一个多模型搜索,我有一个基本的实现工作.但我想扩展pg_seach来使用它的英文字典. 我已经有了一个初始化程序: PgSearch.multisearch_op
我正在将pg_search添加到Rails应用程序中.我正在按照
github和
railscast的说明进行操作,但我遇到了一个问题.
我正在建立一个多模型搜索,我有一个基本的实现工作.但我想扩展pg_seach来使用它的英文字典. 我已经有了一个初始化程序: PgSearch.multisearch_options = { :using => [:tsearch,:trigram],:ignoring => :accents } 所以,从我读过的内容来看,添加词典就像是一样简单 PgSearch.multisearch_options = { :using => [:tsearch => [:dictionary => "english"],:ignoring => :accents } 但是,当我启动我的服务器 ...config/initializers/pg_search.rb:2: syntax error,unexpected ']',expecting tASSOC (SyntaxError) :using => [:tsearch => [:dictionary => "english"], 我已经尝试交换方括号和大括号,以及我能想到的所有其他语法排列,但没有运气. 这里的语法是什么?为什么我的尝试没有效果,因为我遵循了范围搜索的语法? 解决方法
您发布的内容不是有效的Ruby语法.
你想要这样的东西: PgSearch.multisearch_options = { :using => { :tsearch => { :dictionary => "english" },:trigram => {} },:ignoring => :accents } 原因是如果要使用键值对,则必须使用哈希.基本上,pg_search允许2种语法: :using => someArray # such as [:tsearch,:trigram] 这意味着“使用tsearch和trigram,两者都有默认选项” 要么 :using => someHash # such as {:tsearch => optionsHash1,:trigram => optionsHash2} 这意味着“使用来自optionsHash1的一些选项的tsearch,并使用来自OptionsHash2的一些选项的trigram” 如果有任何我可以做的澄清,请告诉我.这是非常基本的Ruby语法,但我理解pg_search接受这两种格式的事实可能会让那些不那么熟悉的人感到困惑. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |