0

0

关于laravel使用es的正确姿势

藏色散人

藏色散人

发布时间:2020-09-19 09:13:04

|

6128人浏览过

|

来源于learnku

转载

下面由laravel教程栏目给大家介绍laravel使用es的正确姿势,希望对需要的朋友有所帮助!

关于laravel使用es的正确姿势

Elasticsearch 简介

Elastic 的底层是开源库 Lucene。但是,你没法直接用 Lucene,必须自己写代码去调用它的接口。Elastic 是 Lucene 的封装,提供了 REST API 的操作接口,开箱即用。

课程推荐→:《elasticsearch全文搜索实战》(实战视频)来自课程《千万级数据并发解决方案(理论+实战)》

ES 和 Mysql

ES 里的概念类比于 Mysql 如下图所示:
laravel 使用 es 的正确姿势

倒排索引

在说倒排索引之前我们先说说什么是正排索引。正排索引也称为”前向索引”,它是创建倒排索引的基础。
laravel 使用 es 的正确姿势
如上在查询一个 keyword 在哪些文档里包含的时候,需对所有的文档进行扫描以确保没有遗漏,这样就使得检索时间大大延长,检索效率低下。这个时候我们就用到了倒排索引,首先将文档分词。
laravel 使用 es 的正确姿势
比如我们要查询‘搜索引擎’这个关键词在哪些文档中出现过。首先我们通过倒排索引可以查询到该关键词出现的文档位置是在1和3中;然后再通过正排索引查询到文档1和3的内容并返回结果。

Laravel 使用 ES

安装插件

basemkhirat/elasticsearch 是 Laravel 中使用 ES 的一个扩展,使用起来非常方便:
1)安装方法

$ composer require basemkhirat/elasticsearch

2)发布

$ php artisan vendor:publish –provider=”Basemkhirat\Elasticsearch\ElasticsearchServiceProvider”

如此AI员工
如此AI员工

国内首个全链路营销获客AI Agent

下载

配置

这样我们就安装好了,如下是我们的连接配置:

'connections' => [
    'default' => [
        'servers' => [
            [
                "host" => env("ELASTIC_HOST", "127.0.0.1"),
                "port" => env("ELASTIC_PORT", 9200),
                'user' => env('ELASTIC_USER', ''),
                'pass' => env('ELASTIC_PASS', ''),
                'scheme' => env('ELASTIC_SCHEME', 'http'),
            ]
        ],
        'index' => env('ELASTIC_INDEX', 'my_index')
    ]],

servers 里可以加入我们的集群配置。

使用方法

该插件的使用方法可借鉴 Laravel 的查询构造器,支持常用的如 wherewhereInwhereBetweenorderByfirstget,也支持分页方法paginate

$documents = ES::connection(“default”)
             ->index(“my_index”)
              ->type(“my_type”)
              ->get();    # return a collection of results

设置字段权重:

ES::type(“my_type”)->search(“hello”, function($search){
   $search->boost(2)->fields([“title” => 2, “content” => 1])
})->get();

我们也可以通过修改源码扩充自己需要用到的方法,也可以构造原生的查询语句:

$params['body'] = [
            'aggs' => [
                'all_created' => [
                    'terms' => [
                        'field' => 'element.raw',
                        'size'  => $this->_mAggsPageSize                    ],

                    'aggs' => [

                        'sum_pv' => [
                            'sum' => ['field' => 'pv'],
                        ],
                    ],
                ],
            ],
        ];

结语

ES 内置分词器对中分支持并不友好,比较推荐的是 IK分词器,需要注意的是ik版本需要与ES的版本号保持一致                                                

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
laravel组件介绍
laravel组件介绍

laravel 提供了丰富的组件,包括身份验证、模板引擎、缓存、命令行工具、数据库交互、对象关系映射器、事件处理、文件操作、电子邮件发送、队列管理和数据验证。想了解更多laravel的相关内容,可以阅读本专题下面的文章。

338

2024.04.09

laravel中间件介绍
laravel中间件介绍

laravel 中间件分为五种类型:全局、路由、组、终止和自定。想了解更多laravel中间件的相关内容,可以阅读本专题下面的文章。

290

2024.04.09

laravel使用的设计模式有哪些
laravel使用的设计模式有哪些

laravel使用的设计模式有:1、单例模式;2、工厂方法模式;3、建造者模式;4、适配器模式;5、装饰器模式;6、策略模式;7、观察者模式。想了解更多laravel的相关内容,可以阅读本专题下面的文章。

686

2024.04.09

thinkphp和laravel哪个简单
thinkphp和laravel哪个简单

对于初学者来说,laravel 的入门门槛较低,更易上手,原因包括:1. 更简单的安装和配置;2. 丰富的文档和社区支持;3. 简洁易懂的语法和 api;4. 平缓的学习曲线。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

382

2024.04.10

laravel入门教程
laravel入门教程

本专题整合了laravel入门教程,想了解更多详细内容,请阅读专题下面的文章。

133

2025.08.05

laravel实战教程
laravel实战教程

本专题整合了laravel实战教程,阅读专题下面的文章了解更多详细内容。

82

2025.08.05

laravel面试题
laravel面试题

本专题整合了laravel面试题相关内容,阅读专题下面的文章了解更多详细内容。

72

2025.08.05

composer是什么插件
composer是什么插件

Composer是一个PHP的依赖管理工具,它可以帮助开发者在PHP项目中管理和安装依赖的库文件。Composer通过一个中央化的存储库来管理所有的依赖库文件,这个存储库包含了各种可用的依赖库的信息和版本信息。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

161

2023.12.25

Golang 测试体系与代码质量保障:工程级可靠性建设
Golang 测试体系与代码质量保障:工程级可靠性建设

Go语言测试体系与代码质量保障聚焦于构建工程级可靠性系统。本专题深入解析Go的测试工具链(如go test)、单元测试、集成测试及端到端测试实践,结合代码覆盖率分析、静态代码扫描(如go vet)和动态分析工具,建立全链路质量监控机制。通过自动化测试框架、持续集成(CI)流水线配置及代码审查规范,实现测试用例管理、缺陷追踪与质量门禁控制,确保代码健壮性与可维护性,为高可靠性工程系统提供质量保障。

6

2026.02.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Laravel---API接口
Laravel---API接口

共7课时 | 0.6万人学习

PHP自制框架
PHP自制框架

共8课时 | 0.6万人学习

PHP面向对象基础课程(更新中)
PHP面向对象基础课程(更新中)

共12课时 | 0.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号