laravel调用solr搜索
PHP 2023/9/25 13:24:47 点击:不统计
转www.载for网站制作学习asp必.cn究
使用php框架laravel(9.0)版本调用solr 8.11.2搜索引擎,配置如下
1.安装php solr 扩展组件
https://www.forasp.cn/html/3052.html php安装solr 扩展组件
用composer 安装laravel扩展插件
composer require solarium/solarium
2.控制器controller 中引入
use Solarium\Client as Client;
use Solarium\Core\Client\Adapter\Curl as Curl;
use Symfony\Component\EventDispatcher\EventDispatcher as EventDispatcher;
3.在env中配置solr 相关参数
SOLR_HOST=localhost
SOLR_PORT=8983
SOLR_CORE=test
SOLR_PATH=/
SOLR_WT=json
4.控制器调用 solr 搜索代码,参数定义到env 里:
$options = [
'endpoint' => [
'localhost' => [
'host' => env("SOLR_HOST"), //IP地址
'port' => env("SOLR_PORT"), //端口号
'core' => env("SOLR_CORE"), //搜索库
'path' => env("SOLR_PATH"), //solr 索引库位置
'wt'=>env("SOLR_WT"),// 返回格式
],
],
];
$sort=['id','desc']; # 定义排序字段,如果没有,请注释下面排序代码,默认按照关联度
$adapter = new Curl(); # curl对象
$eventDispatcher = new EventDispatcher(); # 初始化事件
$search_field = "title_all:".$key_word; # 搜索库字段 title_all 搜索关键词为$key_word
$start = ($page_no - 1) * $page_size; //计算分页开始
$client = new Client($adapter, $eventDispatcher,$options);//实例化 solr类
$query = $client->createSelect();//创建查询
$query->addSort($sort); //排序
$query->setStart($start);//分页 从第几条取,初始0
$query->setRows($page_size);//用于分页 每次取多少条
$query->setQuery($search_field);// 筛选条件
$resultset = $client->select($query);
return $resultset->getData(); # 这里返回的是搜索数据json内容
以上就是laravel调用solr 的代码
备注:关于安装solr 参考
https://www.forasp.cn/html/3053.html mac安装solr
https://www.forasp.cn/html/3054.html linux安装 solr
原载于:本文原载于www.forasp.cn
·上一篇:php安装solr扩展 >> ·下一篇:laravel api写session获取为空 >>