Solr在rails中的多个表中搜索

时间:2013-04-23 05:07:54

标签: ruby-on-rails solr

我有三张表说品牌,网站和商品类别。我想同时在所有三个表中执行搜索功能。我用过solr来进行搜索。以前我一次只搜索一个。这意味着如果用户输入'adidas',那么我在品牌表中搜索,如果没有,那么我在网站表中搜索等等。基于获得的结果,我在其他一些表中搜索main_nav_url使用该brand_id或site_id或category_id并从main_nav_url表中获取所需的列。后来我遇到了这种冲突,就好像'adidas'这个名字出现在品牌和网站表中我只得到了品牌的搜索结果。

请帮我解决这个问题,我可以同时搜索所有三个表,根据获得的结果提取他们的brand-id和site_id category_id,并在main_nav_url表中再执行一次搜索。

1 个答案:

答案 0 :(得分:0)

我得到了答案。

单独执行solr搜索以检索其brand_id,site_id和category_id。将相应的ID存储在数组中。例如

@storesearch.results.each do |result|
    siteids << result.id
end

根据brandid,siteids的长度,catid在main_nav_url表中执行solr搜索。在这种情况下,必须执行solr搜索9种不同的情况。其中一个案例如下所示。

if(siteids.length == 0&amp;&amp; brandids.length!= 0&amp;&amp; catids.length!= 0)     @ searchresults = MainNavigationUrl.search做         any_of do           with:brand_id,brandids [0..brandids.length]           with:main_category_id,catids [0..catids.length]         结束     端