我有一个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分钟以上。
答案 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?