--- fenglin/bbs/search_article_v2.php 2026/01/21 07:58:27 1.1 +++ fenglin/bbs/search_article_v2.php 2026/01/22 01:50:40 1.5 @@ -1,5 +1,6 @@ "localhost", - "port" => "8983", - "path" => "/solr/lbbs", - ); + 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); $query_str = "" . ($sid_list == "(-1)" ? "" : "SectionId:($sid_list) AND ") . ($reply ? "" : "TopicId:0 AND ") . + ($uid == 0 ? "" : "PostUserId:($uid) AND ") . ($username == "" ? "" : "PostUserName:($username) AND ") . ($nickname == "" ? "" : "PostUserNickName:($nickname) AND ") . ($ex == 1 ? "Excerption:1 AND " : "") . - ($original ? "Eransship:0 AND " : "") . + ($original ? "Transship:0 AND " : "") . "PostDateTime:[" . $begin_dt->setTimezone(new DateTimeZone("UTC"))->format("Y-m-d\T00:00:00\Z") . " TO " . $end_dt->setTimezone(new DateTimeZone("UTC"))->format("Y-m-d\T23:59:59\Z") . "] AND " . ($title == "" ? "" : "ArticleTitle:($title) AND ") . @@ -95,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); @@ -118,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( @@ -160,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) @@ -201,6 +161,7 @@ } } + unset($solr_res); unset($solr_query); unset($solr_client);