我在我的Rails应用程序中使用soulmate gem进行自动完成,我遇到的一个大问题是从客户端到Redis服务器的返回延迟。
快速浏览一下宝石代码
# in lib/soulmate/server.rb#search
types.each do |type|
matcher = Matcher.new(type)
results[type] = matcher.matches_for_term(term, :limit => limit)
end
如您所见,为Soulmate::Matcher
创建了type
的新实例(即“位置”,“用户”,“场地”等),然后查询Redis服务器使用matches_for_term
方法。这意味着如果我想一次查询3种类型,将会有6次握手。我希望Soulmate::Matcher
在创建和管道查询redis服务器时接受多个type
。我将如何改变代码/覆盖?好像我需要重写整个宝石。