使用API​​搜索,Foreach循环缓慢

时间:2016-03-14 15:57:02

标签: php solr foreach

我有一个ID数组,我正在做foreach循环,并使用Php Apache SOLR客户端搜索SOLR索引中的每个ID。它像死龟一样缓慢。任何有助于优化此

的帮助
    foreach ( $f_games as $game_id ){   
        $game_type = BKT_PLUGIN_CLASS::tv_regions($game_id);
        //Do my stuff
        $count++;
    }

哪里

  

BKT_PLUGIN_CLASS :: tv_regions

是我的SOLR API搜索类方法(工作正常,没有问题)。

所以它做我想做的事。它需要每个ID并转到SOLR并带来该项目的结果,我做我想做的事情并增加计数。只有200多个ID,吐出结果需要2分钟以上。

2 个答案:

答案 0 :(得分:2)

在Solr中使用Result Grouping - 这样您就可以获得 x 每个区域的点击次数,所有这些都会汇总到一个响应中。根据您的需要调整每组的组数和点击次数。

使用包含所有值的fq来过滤列表,以便它返回您需要的文档,然后按照您通常搜索的值进行分组。

答案 1 :(得分:0)

为什么你为每个游戏ping API?你只是为了连接而浪费了很多时间...... 你不能只传递所有ID并只计算结果吗? 我不太了解SOLR,但对我而言,这是不可能的(因此我认为它是可行的) How to do an IN query in Solr? How can I search on a list of values using Solr/Lucene?