我有三张表说品牌,网站和商品类别。我想同时在所有三个表中执行搜索功能。我用过solr来进行搜索。以前我一次只搜索一个。这意味着如果用户输入'adidas',那么我在品牌表中搜索,如果没有,那么我在网站表中搜索等等。基于获得的结果,我在其他一些表中搜索main_nav_url使用该brand_id或site_id或category_id并从main_nav_url表中获取所需的列。后来我遇到了这种冲突,就好像'adidas'这个名字出现在品牌和网站表中我只得到了品牌的搜索结果。
请帮我解决这个问题,我可以同时搜索所有三个表,根据获得的结果提取他们的brand-id和site_id category_id,并在main_nav_url表中再执行一次搜索。
答案 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] 结束 端