如何将PHP调用Solr封装成长尾?

2026-04-05 05:552阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计303个文字,预计阅读时间需要2分钟。

如何将PHP调用Solr封装成长尾?

Solr自身提供了HTTP接口方法,以下是一个用PHP实现的简单封装示例:

phpclass SolrUtil{ private $solrServer=''; private $core='';

/** * 设置Solr服务器地址和核心名称 * @param string $server * @param string $core */ public function __construct($server, $core) { $this->solrServer=$server; $this->core=$core; }

/** * 执行HTTP GET请求 * @param string $path * @return string */ private function httpGet($path) { $url=$this->solrServer . '/solr/' . $this->core . '/' . $path; $ch=curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $result=curl_exec($ch); curl_close($ch); return $result; }

/** * 执行HTTP POST请求 * @param string $path * @param array $data * @return string */ private function httpPost($path, $data) { $url=$this->solrServer . '/solr/' . $this->core . '/' . $path; $ch=curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $result=curl_exec($ch); curl_close($ch); return $result; }

/** * 查询数据 * @param string $query * @return string */ public function search($query) { return $this->httpGet('select?q=' . urlencode($query)); }

/** * 插入数据 * @param array $data * @return string */ public function insert($data) { return $this->httpPost('update?commit=true', $data); }}

solr自身提供了127.0.0.1:8983/solr/', 'core1'); // $data = $solrUtil->select(array('q'=>'text:商业 AND app_name:测试')); // $data = $solrUtil->select(array('q'=>'测试')); $data = $solrUtil->select(array('q'=>'id:"864"')); // $data = $solrUtil->analysis(array('q'=>'测试数据')); // $data = $solrUtil->suggest(array('q'=>'测试')); // $data = $solrUtil->moreLike(array('q'=>'测试')); // $data = $solrUtil->fullImport(); // $data = $solrUtil->deltaImport(); // $data = $solrUtil->abortImport(); // $data = $solrUtil->statusImport(); // $data = $solrUtil->update(array('id' => 864,'app_name'=>array('set'=>'测试2'))); // $data = $solrUtil->delete(array('id'=>864)); // $data = $solrUtil->add(array('id'=>864, 'app_name' => '测试成功')); print_r($data); ?>

如何将PHP调用Solr封装成长尾?

本文共计303个文字,预计阅读时间需要2分钟。

如何将PHP调用Solr封装成长尾?

Solr自身提供了HTTP接口方法,以下是一个用PHP实现的简单封装示例:

phpclass SolrUtil{ private $solrServer=''; private $core='';

/** * 设置Solr服务器地址和核心名称 * @param string $server * @param string $core */ public function __construct($server, $core) { $this->solrServer=$server; $this->core=$core; }

/** * 执行HTTP GET请求 * @param string $path * @return string */ private function httpGet($path) { $url=$this->solrServer . '/solr/' . $this->core . '/' . $path; $ch=curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $result=curl_exec($ch); curl_close($ch); return $result; }

/** * 执行HTTP POST请求 * @param string $path * @param array $data * @return string */ private function httpPost($path, $data) { $url=$this->solrServer . '/solr/' . $this->core . '/' . $path; $ch=curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $result=curl_exec($ch); curl_close($ch); return $result; }

/** * 查询数据 * @param string $query * @return string */ public function search($query) { return $this->httpGet('select?q=' . urlencode($query)); }

/** * 插入数据 * @param array $data * @return string */ public function insert($data) { return $this->httpPost('update?commit=true', $data); }}

solr自身提供了127.0.0.1:8983/solr/', 'core1'); // $data = $solrUtil->select(array('q'=>'text:商业 AND app_name:测试')); // $data = $solrUtil->select(array('q'=>'测试')); $data = $solrUtil->select(array('q'=>'id:"864"')); // $data = $solrUtil->analysis(array('q'=>'测试数据')); // $data = $solrUtil->suggest(array('q'=>'测试')); // $data = $solrUtil->moreLike(array('q'=>'测试')); // $data = $solrUtil->fullImport(); // $data = $solrUtil->deltaImport(); // $data = $solrUtil->abortImport(); // $data = $solrUtil->statusImport(); // $data = $solrUtil->update(array('id' => 864,'app_name'=>array('set'=>'测试2'))); // $data = $solrUtil->delete(array('id'=>864)); // $data = $solrUtil->add(array('id'=>864, 'app_name' => '测试成功')); print_r($data); ?>

如何将PHP调用Solr封装成长尾?