木子李的个人博客

Good Luck To You!

thinkphp配置elasticsearch

在 ThinkPHP 中集成 Elasticsearch,主要通过官方 PHP 客户端 elasticsearch/elasticsearch 实现。以下是关键步骤和注意事项:


核心步骤

  1. 安装 Elasticsearch PHP 客户端
    使用 Composer 安装官方客户端:

    composer require elasticsearch/elasticsearch
  2. 配置连接信息
    根据 ThinkPHP 版本(如 TP5、TP6、TP8),在配置文件(如 config/elasticsearch.php)中设置节点地址:

    return [    'hosts' => ['127.0.0.1:9200'], // 本地默认端口
        'username' => '', // 若启用安全认证则填写
        'password' => '',
    ];
  3. 初始化客户端
    在控制器或服务中创建客户端实例:

    use Elasticsearch\ClientBuilder;$client = ClientBuilder::create()
        ->setHosts(config('elasticsearch.hosts'))
        ->build();
  4. 执行常见操作

    • 创建索引‌:$client->indices()->create(['index' => 'my_index'])

    • 添加文档‌:$client->index(['index' => 'my_index', 'body' => ['title' => 'test']])

    • 搜索‌:$client->search(['index' => 'my_index', 'body' => ['query' => ['match_all' => []]]])


版本兼容性注意

  • Elasticsearch 8.x+‌ 不再支持 URL 中的 type 参数(如 _doc 已默认)‌2

  • 若使用 ES 7.x,需设置 'include_type_name' => true ‌9

  • 推荐使用 ‌Elasticsearch 7.17‌ 或 ‌8.11+‌,与主流 PHP 版本兼容性较好 ‌43


推荐实践方案

  • ThinkPHP 6/8‌:建议封装为 Service 类,通过依赖注入管理客户端 ‌59

  • 复杂查询‌:可使用链式操作封装库(如 xiaosongshu/elasticsearch)简化开发 ‌3

  • 中文分词‌:安装 IK Analyzer 插件,并在映射中指定 analyzer => 'ik_max_word' ‌1112


参考资源

提示:确保 Elasticsearch 服务已启动,并开放对应端口(默认 9200)。生产环境建议启用 HTTPS 和认证。


发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2026年3月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
    网站收藏
    友情链接

    Powered By Z-BlogPHP 1.7.3