我正在使用algolia搜索我的模型,效果很好。我正在使用rails +活动记录。
目前,每个模型都可以分别搜索,如下所示:
@places = Place.search(params[:q])
@events = Event.search(params[:q])
@authors = Author.search(params[:q])
问题是要获取我的所有结果并显示它们(因为我的搜索可以在任何模型上查看),我需要执行以下操作:
@results = @places + @events + @authors
这不是我想要的,因为排名不会是100%准确的+我将通过所有匹配的地点,所有事件,然后所有作者获得我的所有结果...直接搜索会更高效在多个索引上
我在algolia文档中发现它可以查看多个索引,问题是我最终得到了很大的哈希,并且完全失去了实际的“对象”
res = Algolia.multiple_queries([
{ index_name: 'Place_production',query: params[:index_input] },{ index_name: 'Event_production',query: params[:index_input] }
])
Returns something like -> [{"hits"=>[{"name"=>"Qualité du musée","description"=>"Museum Quality - Monday - Sunday","objectID"=>"678","_highlightResult"=>{"name"=>{"value"=>"Qualité du.....
我不能再对其进行迭代了……我需要使用哈希,问题是我丢失了实际的“对象”及其所有信息-检索每个记录听起来太复杂了。 我敢肯定有一种更简单的方法吗?
->如何实现我想要的(多重搜索)并最终得到一个很好的实际实例数组,如我的@results?
非常感谢您的帮助