您好,欢迎访问一九零五行业门户网

php的solr的操作类及demo

php的solr的操作类及demo
一、solr类
'127.0.0.1','port' => '8080'); /** * 设置solr库选择 * @param $core string 库名称 */ public static function setcore($core){ if($core) self::$options['path']='solr/'.$core; } /** * 增加solr索引 * @param $fieldarr 索引字段及值 * @return bool true */ public static function adddocument($fieldarr=array()){ $client = new solrclient(self::$options); $doc = new solrinputdocument(); foreach($fieldarr as $k => $v){ $doc->addfield($k,$v); } $client->adddocument($doc); $client->commit(); return true; } /** * 删除索引 * @param $id 主键id id可以为数组形式,应用于多选的情况 * @return bool true */ public static function deldocument($ids){ $client = new solrclient(self::$options); if(is_array($ids)) $client->deletebyids($ids); else $client->deletebyid($ids); $client->commit(); return true; } /** * 查询数据 * @param $qwhere 关键字 * @param $fqwhere 附加条件,根据范围检索,适用于数值型 * @param $getfield 查询字段 * @param $sort 排序 array('duration'=>'asc') asc:升序,desc:降序 * @param $pageindex 查询页数 * @param $pagesize 每页显示条数 */ public static function selectquery($qwhere=array(),$fqwhere=array(),$getfield=array(),$sort=array(),$pageindex=1,$pagesize=20){ $client = new solrclient(self::$options); $query = new solrquery(); $sel = ''; foreach($qwhere as $k => $v){ // $sel .= ' +'.$k.':'.$v; $sel = "{$k} : \"{$v}\""; } $query->setquery($sel); //关键字检索 //附加条件,根据范围检索,适用于数值型 if($fqwhere){ $query->setfacet(true); foreach($fqwhere as $k => $v) $query->addfacetquery($v); //$query->addfacetquery('price:[* to 500]'); } //查询字段 if($getfield){ foreach($getfield as $key => $val) $query->addfield($val); } //排序 if($sort){ foreach($sort as $k => $v){ if($v == 'asc') $query->addsortfield($k,solrquery::order_asc); elseif($v == 'desc') $query->addsortfield($k,solrquery::order_desc); } } //分页 $query->setstart(self::getpageindex($pageindex,$pagesize)); $query->setrows($pagesize); $query_response = $client->query($query); $response = $query_response->getresponse(); return $response; } /** * 分页数据处理 */ private static function getpageindex($pageindex,$pagesize){ if($pageindex<=1) $pageindex = 0; else $pageindex = ($pageindex-1)*$pagesize; return $pageindex; } }
二、操作demo
"wang jing jie", ); print_r(phpsolr::selectquery($qwhere)); //添加 $fieldarr = array( "id" => 15, "username" => "si sheng chao", "usertype" => 1, "last_update_time" => "2016-01-05t03:35:13z", ); phpsolr::adddocument($fieldarr); //删除 //phpsolr::deldocument(15);
以上就介绍了php的solr的操作类及demo,包括了方面的内容。
相关文章:
安装php-solr扩展
搜索方案 solr+php如何安装配置?
集成 php 应用和 solr 搜索引擎
其它类似信息

推荐信息