网站制作学习网PHP→正文: laravel调用solr搜索
字体:

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获取为空 >>
推荐文章
最新文章