Ruby on rails Rails:soulmate gem用于多种类型的管道

Ruby on rails Rails:soulmate gem用于多种类型的管道,ruby-on-rails,gem,redis,pipeline,Ruby On Rails,Gem,Redis,Pipeline,我在Rails应用程序中使用gem进行自动完成,我遇到的一个大问题是从客户端到Redis服务器的查询延迟 快速查看一下gem代码就可以看到 # in lib/soulmate/server.rb#search types.each do |type| matcher = Matcher.new(type) results[type] = matcher.matches_for_term(term, :limit => limit) end 如您所见,将为每个类型(即“位置

我在Rails应用程序中使用gem进行自动完成,我遇到的一个大问题是从客户端到Redis服务器的查询延迟

快速查看一下gem代码就可以看到

# 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
的新实例,然后使用
matches\u for\u term
方法查询Redis服务器。这意味着如果我想一次查询3种类型,将有6次握手。我希望
Soulmate::Matcher
在创建和管道查询redis服务器时接受多个
type
s。如何更改代码/重写?似乎我需要重写整个gem。

我最终只是使用gem并并行化查询

它很俗气,仍然使用比必要的更多的握手方式,只是并行,但它现在起作用了