--- fenglin/bbs/search_article_v2.php 2026/01/21 13:37:51 1.4 +++ fenglin/bbs/search_article_v2.php 2026/01/22 01:50:40 1.5 @@ -68,6 +68,16 @@ mysqli_free_result($rs); } + if (!in_array($rpp, $BBS_list_rpp_options)) + { + $rpp = $BBS_list_rpp_options[0]; + } + + if ($page <= 0) + { + $page = 1; + } + // Initialize Solr client $solr_client = new SolrClient($solr_options); @@ -90,6 +100,8 @@ $solr_query->setQuery($query_str); $solr_query->addField("ArticleId"); $solr_query->addSortField("PostDateTime", SolrQuery::ORDER_DESC); + $solr_query->setStart(($page - 1) * $rpp); + $solr_query->setRows($rpp); try { $solr_res = $solr_client->query($solr_query); @@ -113,23 +125,7 @@ $toa = $solr_obj->response->numFound; - unset($solr_query); - - if (!in_array($rpp, $BBS_list_rpp_options)) - { - $rpp = $BBS_list_rpp_options[0]; - } - $page_total = ceil($toa / $rpp); - if ($page > $page_total) - { - $page = $page_total; - } - - if ($page <= 0) - { - $page = 1; - } // Fill up result data $result_set["data"] = array( @@ -155,37 +151,6 @@ "articles" => array(), ); - // Query article IDs - $solr_query = new SolrQuery(); - $solr_query->setQuery($query_str); - $solr_query->addField("ArticleId"); - $solr_query->addSortField("PostDateTime", SolrQuery::ORDER_DESC); - $solr_query->setStart(($page - 1) * $rpp); - $solr_query->setRows($rpp); - try - { - $solr_res = $solr_client->query($solr_query); - } - catch (Exception $e) - { - $result_set["return"]["code"] = -3; - $result_set["return"]["message"] = "Solr query error"; - - exit(json_encode($result_set)); - } - $solr_obj = $solr_res->getResponse(); - - if ($solr_obj->responseHeader->status != 0) - { - $result_set["return"]["code"] = -3; - $result_set["return"]["message"] = "Solr query error: " . $solr_obj->responseHeader->status; - - exit(json_encode($result_set)); - } - - // print_r($solr_obj); - // exit(); - $aid_list = "-1"; if ($solr_obj->response->docs !== false) @@ -196,6 +161,7 @@ } } + unset($solr_res); unset($solr_query); unset($solr_client);