在日常开发过程中难免要查看es的数据是否正确,就需要调试,特意整理常用调试命令如下
es文档操作
提示
下面的index用来表示索引名称
查看
GET index/_search
{
"query": { "match_all": {} } ,
"size": 4000
}
在日常开发过程中难免要查看es的数据是否正确,就需要调试,特意整理常用调试命令如下
提示
下面的index用来表示索引名称
GET index/_search
{
"query": { "match_all": {} } ,
"size": 4000
}
是 VS Code 里最主流的 PHP 语言服务扩展,相当于给 PHP 装上了「智能大脑」,核心作用就是提供:
语法高亮、错误检查
代码补全、方法跳转、引用查找
命名空间、类、方法的自动索引
格式化、重构建议
用户配置(User): 作用于你当前电脑上所有 VS Code 窗口,是全局默认配置。不管打开哪个项目,这些设置都会生效。
**工作区配置(Workspace):**只对当前打开的这个项目生效,优先级比用户配置更高。如果和用户配置里的项冲突,会以工作区配置为准。
提示
结合laravel-fast-api-youhujun
先在 DebugSeeder 中添加
use Database\Seeders\YouHu\YouHuSeeder;
提示
结合laravel-fast-api-youhujun
先在 DebugSeeder 中添加
use Database\Seeders\YouHuShop\YouHuShopSeeder;
在实际开发工作中当遇到需要处理树形数据时,通常会使用递归的方式来实现。
提示
假设是在一个类中实现
private function listToTree(array $list, string $idField = 'id', string $pidField = 'parent_id', int $rootPid = 0): array
{
$tree = [];
$map = [];
// 1、先全量索引,用引用保证后续修改能同步
foreach ($list as &$item) {
$item['children'] = [];
$map[$item[$idField]] = &$item;
}
// 解除引用,避免副作用
unset($item);
// 2、循环挂载子节点
foreach ($map as &$item) {
$pid = $item[$pidField];
if ($pid === $rootPid) {
// 顶级节点
$tree[] = &$item;
} elseif (isset($map[$pid])) {
// 找到父节点,塞入children(通过引用同步)
$map[$pid]['children'][] = &$item;
} else {
// 找不到父节点
echo "警告:ID={$item[$idField]} 父ID={$pid} 不存在,丢弃\n";
}
}
unset($item);
return $tree;
}
提示
laravel-fast-api-youhujun底座提炼封装了契约层,用于实现通用基础功能和自由业务特殊业务逻辑的解耦
下面通过示例来说明如何处理使用
提示
再次建议,如下面示例,针对该契约,业务内部传递参数使用AddUserHandlerContractDTO,避免使用数组传递参数,
这样数据结构更清晰,便于维护
php artisan vendor:publish --tag=init --force
EsQueryFacade 是游鹄生态系统中 Elasticsearch 查询的封装门面,提供 Laravel 风格的链式查询语法,自动将常见查询条件转换为 ES DSL 语法。
特点:
=、>、>=、<、<=、!=、like、in、between、null/notNull 等常用操作符orWhere、orWhereLike 逻辑查询.keyword 后缀LengthAwarePaginator)和普通查询composer update
Elasticsearch服务提供了对 Elasticsearch 的完整操作支持,包括索引管理、文档CRUD、搜索查询以及批量操作等功能。
use YouHuJun\Tool\App\Facades\V1\Es\EsFacade;