当前位置:首页 > 服务端 > laravel使用Elasticsearch

laravel使用Elasticsearch

2022年11月09日 15:49:37服务端7

一、composer安装elasticsearch扩展包

composer require elasticsearch/elasticsearch “7.12.x” --ignore-platform-reqs

二、配置es

  • config/database.php
 'elasticsearch' => [
        'hosts' => explode(',',env('ES_HOSTS')),
    ]
  • .env
 ES_HOSTS=192.168.148.188:9200 #默认9200,端口可不写

三、初始化 Elasticsearch 对象,并注入到 Laravel 容器中

在laravel容器中自定义一个名为es的服务对象,通过ESClientBuilder以及配置文件中的信息连接到es,我们可以通过app(‘es’)->info()查看连接之后的es对象信息。

  • App/Providers/AppServiceProvider.php
<?php

namespace App\Providers;

use Elasticsearch\ClientBuilder as ElasticClientBuilder;
use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
     
    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
     
        // 注册一个名为 es 的单例
        $this->app->singleton('es',function (){
     
            // 从配置文件读取 Elasticsearch 服务器列表
            $builder =  ElasticClientBuilder ::create()->setHosts(config('database.elasticsearch.hosts'));
            // 如果是开发环境
            if (app()->environment()==='local'){
     
                // 配置日志,Elasticsearch 的请求和返回数据将打印到日志文件中,方便我们调试
                $builder->setLogger(app('log')->driver());
            }
            return $builder->build();
        });
    }

    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
     
        //
    }
}

四、测试

  1. php artisan tinker
    Laravel artisan 的 tinker 是一个 REPL (read-eval-print-loop),REPL 是指 交互式命令行界面,它可以让你输入一段代码去执行,并把执行结果直接打印到命令行界面里。
  2. app(‘es’)->info()
we123@LAPTOP-P1SSGT9F MINGW64 /e/project/lmrs/lmrs
$ php artisan tinker
Psy Shell v0.10.8 (PHP 7.3.4 — cli) by Justin Hileman

>>> app('es')->info()
=> [
     "name" => "es-node-1",
     "cluster_name" => "my-application",
     "cluster_uuid" => "UFOIRUHPRZuVVRNaSeubJw",
     "version" => [
       "number" => "7.12.1",
       "build_flavor" => "default",
       "build_type" => "docker",
       "build_hash" => "3186837139b9c6b6d23c3200870651f10d3343b7",
       "build_date" => "2021-04-20T20:56:39.040728659Z",
       "build_snapshot" => false,
       "lucene_version" => "8.8.0",
       "minimum_wire_compatibility_version" => "6.8.0",
       "minimum_index_compatibility_version" => "6.0.0-beta1",
     ],
     "tagline" => "You Know, for Search",
   ]
>>>

快速检查es集群的健康状况

GET /_cat/health?v
laravel使用Elasticsearch _ JavaClub全栈架构师技术笔记

如何快速了解集群的健康状况?status -> green、yellow、red?

  • green:每个索引的primary shard和replica shard都是active状态的
  • yellow:每个索引的primary shard都是active状态的,但是部分replica shard不是active状态,处于不可用的状态
  • red:不是所有索引的primary shard都是active状态的,部分索引有数据丢失了

快速查看es集群中有哪些索引

GET /_cat/indices?v
laravel使用Elasticsearch _ JavaClub全栈架构师技术笔记

作者:单车登月
来源链接:https://blog.csdn.net/sinat_38926283/article/details/117189158

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/server/68805.html

标签: Elasticsearch
分享给朋友:

“laravel使用Elasticsearch” 的相关文章

Elasticsearch Java高级客户端

Elasticsearch Java高级客户端

1.  概述 Java REST Client 有两种风格: Java Low Level REST Client :用于Elasticsearch的官方低级客户端。它允许通过http与Elasticsearch集群通信。将请求编排和响应反编排留给用户自...

ElasticSearch与SpringBoot集成-ElasticsearchRestTemplate

1. 简介   SpringBoot提供了与ElasticSearch的集成的starter包,并封装了ElasticsearchRestTemplate类,还实现了与Java对象与ElasticSearch索引的映射关系,可以采用与JPA相似的Repository接口,来操作E...

设置JVM选项-ElasticSearch

设置JVM的方法 在ElasticSearch中设置JVM选项有两种方法,一种是通过jvm.options,另一种是通过环境变量ES_JAVA_OPTS。 jvm.options jvm.options是优选选择的方法,通过tar或者z...

Docker安装ElasticSearch

Docker安装ElasticSearch

前言 上一个项目刚刚结束,准备摸几天鱼学点新东西。但是在这空隙间,就被领导抓住了,让我从硬盘上拷一个项目,说是这个项目上有新的需求要改动,让我把环境搭一下,然后跑起来。万般无奈之下,我只能答应了。但是我也很疑惑,为毛还要从硬盘上拷项目?虽然公司没用...

SpringBoot整合ElasticSearch实现多版本的兼容

SpringBoot整合ElasticSearch实现多版本的兼容

前言 在上一篇学习SpringBoot中,整合了Mybatis、Druid和PageHelper并实现了多数据源的操作。本篇主要是介绍和使用目前最火的搜索引擎ElastiSearch,并和SpringBoot进行结合使用。 ElasticSearch介绍 E...

Elasticsearch Java Client 版本区别及起步(5.X 和6.X)

Elasticsearch Java Client 版本区别及起步(5.X 和6.X)

目前ElasticSearch版本最常用的应该时5.X 和6.X,这两个版本中都存在两种客户端: 简单总结: 1,如果服务端是5.6以下的,选择相同版本的TransportClient,避免一些API服务端不支持 2,如果服务端是5.6以上的,选择相同版本的R...

linux安装elasticsearch部署配置详细说明

    ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引...

CenterOS 7 安装Elasticsearch、Kibana

CenterOS 7 安装Elasticsearch、Kibana 环境准备 JDK1.8、Elasticsearch 7.10.0、Kibana 7.10.0 JDK1.8安装 yum install java-1.8.0-op...

Linux安装Elasticsearch

Linux安装Elasticsearch

本文介绍Linux环境如何安装Elasticsearch. 本文环境是在腾讯云服务器CentOS7.2搭建的,JDK1.8,elasticsearch-5.4.2。 1 安装JDK 网上教程很多,也可以参考本人教程之前写的Linux安装...

发表评论

访客

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