laravel8如何使用Elasticsearch_旧客的博客-CSDN博客


本站和网页 https://blog.csdn.net/YDyuchen/article/details/125549378 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

laravel8如何使用Elasticsearch_旧客的博客-CSDN博客
laravel8如何使用Elasticsearch
旧客
已于 2022-09-02 11:18:30 修改
282
收藏
分类专栏:
laravel
文章标签:
elasticsearch
搜索引擎
laravel
全文检索
于 2022-07-01 10:47:17 首次发布
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/YDyuchen/article/details/125549378
版权
laravel
专栏收录该内容
2 篇文章
0 订阅
订阅专栏
        现在很多网站也好页面也罢,很多都离不开搜索,本文将会介绍larvael8中如何正确的使用Elasticsearch,但是本文仅仅只是一个基础。
        首先我们需要启动本地已经下载好的Elasticsearch,然后在已经下载好的laravel框架中安装对应的composer包
        composer require elasticsearch/elasticsearch
        composer包下载好之后,框架内就可以调用Elasticsearch。
        通常使用该插件,个人建议封装起来。
添加中文分词
        我们想添加中文分词的话,通常情况下在建表之初就要对表进行一个分词设置,这个表不是我们数据库中的表,而是我们使用的es中的一种数据表,不加中文分词的话,不去进行建表也是可以直接添加索引的,因为会自动根据index创建一个数据表,但是我们要配置中文分词的话,则需要在es中手动创建一张数据表,但是有一点需要注意,这个建表操作不是每次都需要去执行的,建表操作我们只需要创建一次就好,你能在MySQL中创建好几张名字相同的数据表么?显然不可以,es也是一样。
$params = [
'index' => "aaa",
'body' => [
'mappings' => [
'properties' => [
//之后可以进行搜索的字段
'room-name' => [
'type' => 'text',
"analyzer" => "ik_max_word",
"search_analyzer" => "ik_max_word"
];
$this->client = ClientBuilder::create()->setHosts(['127.0.0.1:9200'])->build();
// 执行 只用执行一次即可
// $this->client->indices()->create($params);
添加索引
        在我们添加数据的同时,我们就应该将索引也同步添加进去,不然我们添加完数据并没有添加对应的索引,那么我们就无法通过索引查询到添加的数据。
        我们通过ClientBuilder来调用Elasticsearch,create()为创建,setHosts()为我们需要连接的Elasticsearch的ip,通常不该配置的情况下为127.0.0.1:9200,9200为Elasticsearch默认的端口号,但是该端口号可以进行更改,如更改过端口号只需将9200更改为自己修改过后的端口号。
数据每行对应如下:
        index:索引名
        type:该字段默认为_doc
        id:该字段不写也问题不大,因为该id会自动生成,但是为了我们在执行删除数据的时候为我们自己提供便利,通常情况下将该id设为数据id
        body:需要为该索引添加的内容
        
        当我们设置完数组之后,只需将调用了ClientBuilder的函数指向index(),再放入定义好的数组即可生成索引。
查询索引
        索引生成之后我们就该考虑如何通过索引进行查询。在创建索引时,我们已经将大致结构写入,因此查询索引的时候,我们要通过创建的索引来查询
        进入查询所以方法之后,和添加索引一样,我们需要先连接到Elasticsearch,数组内前三行则为我们创建索引时的名称,因为id是可有可无的,所以我们在查询索引的情况下不进行填写也无伤大雅。下面将介绍数组内每个下标名称的含义。
index:索引名
type:固定为_doc
body:创建索引时我们添加进去的数据
        ‘query:必须
                match:必须,此为查询方法,可更改为其他方法
                        room-name:这个名字是跟随着自己库里的字段名称而改变,也就是想要查询的列做改变
        highlight:此数组内的内容为高亮显示
                fields:指定要搜索的字段列表
                        room-name:查询的字段名
                                per_tags:查询到的内容前需要添加的形式
                                post_tags:查询到的内容后需要添加的形式
        数组定义结束之后,我们就要执行这个数组,将调用了ClientBuilder的函数指向search(),这时我们就会得到一个数组
        这个时候我们需要改变这个数组的格式,变成可以为我所用的格式,因此我们需要对该数组进行遍历。
        我们针对性的直接指向array()中 hits 内的 hits ,因为我们所需要的数据都保存在其中,不需要其他的多余的数据,最终呈现在我们面前的则是
        在遍历之前我们需要先清楚我们为什么要把数组改为我们需要的格式,那么我们需要的格式是什么。如果我们不需求高亮显示的话,我们的查询的数据不需要遍历就已经可以用了,只需调用数据中 hist 下的 hist 下的 _source 即可,但是我们现在所需要的是高亮显示,因此我们需要把添加过高亮样式的数据放入我们所展示的数据当中,也就是放入 _source之中,明白我们需求的情况下,循环遍历数组进行修改就会变得简单明了。
         之所以在遍历的时候我们要指向一个下表0,是因为在高亮显示的数据中,只有这一个下标为0的数据,因此直接指向该下标,而在查询的数据当中我们使用$k,是因为我们通过一个索引查到的数据不会只有一条,而是多条,所以我们需要把每条的数据都进行更改。
        最后使用 array_column 函数提取数据即可
删除索引
         我们删除数据的时候,我们会发现,这条数据我明明已经删除了,但是搜索的时候缺依旧能够把这条数据搜索出来,这是因为我们虽然删除了这条数据,但是我们并没有删除对应的索引,我们在创建数据的同时已经将索引同步创建,因此为一条数据一个索引,我们把该数据删掉了,自然而然要删除该索引。
        进入方法还是那个连接Elasticsearch,它还在,它始终没有走,这时候你会发现,我添加的时候,数组有四条数据,查询的时候,那四条数据只出现了三个,少了 id ;删除的时候,有了 id 却少了 body 。这是因为查询用不到 id ,删除用不到 body ,因此没必要多余的去写它。
        在添加索引的时候,我说这个 id 是会自动生成的,但是我们最好改为数据对应的id,就是因为我们在删除索引的时候会用到,如果是自动生成的id,我们不好获取到。数组内的数据在这里就不再赘述,跟添加的时候一样。
        我们将删除数据时的id传入该方法之中,执行删除,与数据对应的索引就会随之删除。
关注博主即可阅读全文
旧客
关注
关注
点赞
收藏
打赏
评论
laravel8如何使用Elasticsearch
在laravel8中使用Elasticsearch搜素引擎
复制链接
扫一扫
专栏目录
Laravel + Elasticsearch 实现中文搜索的方法
12-20
Elasticsearch
Elasticsearch 是一个基于 Apache Lucene(TM) 的开源搜索引擎,无论在开源还是专有领域,Lucene可 以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。
但是,Lucene 只是一个库。想要发挥其强大的作用,你需使用 Java 并要将其集成到你的应用中。Lucene 非常复杂,你需要深入的了解检索相关知识来理解它是如何工作的。
Elasticsearch 也是使用 Java 编写并使用 Lucene 来建立索引并实现搜索功能,但是它的目的是通过简单连贯的 RESTful API 让全文搜索变得简单并隐藏 Lucene 的复杂性
laravel8使用jwt
最新发布
qq_36901092的博客
10-17
107
laravel8使用jwt
参与评论
您还未登录,请先
登录
后发表或查看评论
laravel使用Elasticsearch
晴空万里
05-23
1466
一、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:92
laravel中使用ElasticSearch详情
热门推荐
王道长的技术博客
06-19
1万+
一、快速开始
laravel 安装es
composer require elasticsearch/elasticsearch
环境配置 .env
ELASTIC_HOST=192.168.20.129:9200 # 这里是你的 ElasticSearch 服务器 IP 及端口号
ELASTIC_LOG_INDEX=bf_log # ElasticSearch 索引
ELASTIC_L...
Laravel Elasticsearch
pure_one的博客
05-30
122
LaravelElasticsearch
启动Elasticsearch :进入Elasticsearch文件bin目录 命令行运行elasticsearch.bat
设置Elasticsearch端口号 进入Elasticsearch文件内 进入config 打开图内文件进行修改
框架安装Elasticsearch
进入项目根目录 执行composer安装 composer require 'elasticsearch/el...
win10+laravel8+PHP+ElasticSearch+Kibana+高亮 接口搜索
weixin_54356942的博客
12-24
859
一 : 打开本地的elasticsearch和kibana环境
win键盘 + r键盘 打开命令行工具
启动es
启动kibana
二 : 在框架内下载composer插件
composer require elasticsearch/elasticsearch
三 : 使用命令创建elasticsearch的控制器
php artisan make:controller Api/esasticSearchController
四 : 在控制器内的命名空间下调用
use Elasticsearch\
laravel使用elasticsearch
Dear_xq 的博客
07-04
640
laravel 配置 es
config/database.php
.env 配置
初始化 Elasticsearch 对象,并注入到 Laravel 容器中:
App/Providers/AppServiceProvider.php注释:在laravel容器中自定义一个名为es的服务对象,通过ESClientBuilder以及配置文件中的信息连接
到es,我们可以通过app(‘es’)->info()查看连接之后的es对象信息。
注册完成后,进行测试
结果如下:.....................
laravel简单使用es 同步mysql数据到es
弄啥嘞的博客
04-06
426
在使用es之前 需要了解一下 Elasticsearch 中的一些重要概念: cluster, node, index, document, shards 及 replica等
可以查看Elasticsearch 中的一些重要概念: cluster, node, index, document, shards 及 replica_Elastic 中国社区官方博客-CSDN博客_replica
首先我们使用docker 安装elastic和kibana
docker network create e.
laravel8 es搜索及高亮展示
qq_58467694的博客
06-04
188
一、官方网址:Elasticsearch-PHP | Elastic二、详细请转看:ES是什么?_柒-的博客-CSDN博客_es是什么三、es使用:1、新建app\Business\Es
2、在方法中使用es
3、测试工具测试:
laraval8 安装elasticsearch引擎,并使用scout包
u012536034的博客
02-23
201
laraval+es,安装与使用
laravel结合Elasticsearch的使用[PHPer菜菜的PHP技术分享篇]
就叫我菜菜吧的博客
12-09
1476
首先我们现在本地搭建一个laravel项目,在你的专门存放代码的目录下通过composer安装一个laravel新项目包。
composer create-project laravel/laravel elasticsearch_demo
安装完成后进入项目根目录,依次安装好elasticsearch所需的第三方扩展包
composer require elasticsearch/elasticsearch //elasticsearch核心包
composer require tamayo.
Laravel下Elasticsearch使用
小琅琊的博客
10-03
3515
一.基本概念
索引(index) :这个索引就是mysql里数据库的名字,不是数据库里的字段索引,只是巧了,名字一样而已
类型(type) :就是你要搜索的表名
文档(document):就是表里面的一条记录
字段(field):一条记录有很多字段,你要以哪些字段为准,进行搜索
模板(template):就是一些搜索配置,用哪些分析器,该模板应用到那个索引 PS:
1. 注意,es的搜索还
Laravel-Elasticsearch探索
u014459543的博客
02-20
121
Elasticsearch技术出现也有段时间了,一直很好奇想了解一下,利用周末时间了解熟悉一下;
Elasticsearch 是一个基于 Apache Lucene™ 的开源搜索引擎;Lucene 只是一个库;Elasticsearch 也是使用 Java 编写并使用 Lucene 来建立索引并实现搜索功能
分布式的实时文件存储,每个字段都被索引并可被搜索
实时分析的分布式搜索引擎
可以扩展到上百台服务器,处理PB级结构化或非结构化数据
在安装Elasticsearch引擎之前,必须安装ES需要的软件环境,
laravel 操作elasticsearch
qq_38120760的博客
01-06
238
1.安装相应插件
composer require elasticsearch/elasticsearch
composer require laravel/scout
composer require matchish/laravel-scout-elasticsearch
//发布配置文件
php artisan vendor:publish --provider="Laravel\Scout\ScoutServiceProvider"
//在config/scout.php配置文件中修改搜索驱动为
laravel下es的安装与使用
J2778322217的博客
02-07
1577
laravel框架下的es安装和使用
Laravel elasticsearch
u011436748的博客
02-18
85
elasticsearch
https://blog.csdn.net/p_ython/article/details/77284088
linux 安装ElasticSearch的中文分词器IK https://www.cnblogs.com/-mrl/p/13877701.html
Laravel 以ElasticSearch的方式使用scout
菜刚RyuGou的专栏
10-16
7900
Laravel5.3已经发布了,这次版本多了一个官方工具包:scout。这个包的作用就是帮助大家更好的将全文检索工具和项目更好的结合,让开发者使用起来更方便。但是我发现了一个问题:Laravel官方文档对于scout的使用说明并没有那么详细,只讲了如何将检索工具“Algolia”(法国一家公司提供的检索PaaS服务)和Laravel结合的使用方式,而没有讲使用ElasticSearch的方式...
Laravel 结合Elasticsearch 实现全文搜索
huangdj321的博客
03-17
629
一、安装
终端执行命令,全局安装 elasticsearch,命令如下:
brew install elasticsearch
过程中,你会看到一个报错信息,说你没有安装Java的JDK, 而且版本必须是1.8以上的,根据提示命令安装即可。
brew cask install homebrew/cask-versions/java8
安装完后,执行命令查看版本信息:java -version
...
laravel8 实现ES7.15简单使用
daxianyu666的博客
02-27
1560
1.下载laravel8 支持的es插件
comoposer require elasticsearch/elasticsearch
2.在要使用的地方引入ES
use Elasticsearch\ClientBuilder;
3.生成ES对象
$client = ClientBuilder::create()‐>setHosts('连接地址')‐>build();
4.添加信息到es
$edData=[
'index
laravel 中使用 elasticsearch
z_ruitao的博客
03-23
1041
安装 elasticsearch 和 kibana(用来查看管理elasticsearch中的数据)
参照:https://blog.csdn.net/z_ruitao/article/details/105043521
安装 scout
composer require laravel/scout
# 在config/app.php 的 providers 数组中添加
Laravel\Scout...
Elasticsearch-PHP搜索 微信小程序+laravel
hzhandevery的博客
09-05
479
es就相当于一个数据库,在数据添加时,需要添加一份到es的数据库里。
而es搜索就是,先接收前端传过来的数据,然后将es数据库实例化,并在es数据库里搜索
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
©️2022 CSDN
皮肤主题:游动-白
设计师:我叫白小胖
返回首页
旧客
CSDN认证博客专家
CSDN认证企业博客
码龄4年
暂无认证
原创
31万+
周排名
13万+
总排名
3978
访问
等级
70
积分
157
粉丝
10
获赞
评论
收藏
私信
关注
热门文章
docker windows简单安装使用
1588
WebSocket + 微信小程序 一对一聊天
1218
PHP常用composer包汇总
354
tp+微信小程序实现多图片上传
339
laravel8如何使用Elasticsearch
282
分类专栏
docker
1篇
微信小程序
2篇
swoole
1篇
laravel
2篇
thinkPHP
1篇
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
PHP常用composer包汇总
Laravel8 定时任务
WebSocket + 微信小程序 一对一聊天
2022年6篇
目录
目录
分类专栏
docker
1篇
微信小程序
2篇
swoole
1篇
laravel
2篇
thinkPHP
1篇
目录
评论
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
打赏作者
旧客
你的鼓励将是我创作的最大动力
¥2
¥4
¥6
¥10
¥20
输入1-500的整数
余额支付
(余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付
您的余额不足,请更换扫码支付或充值
打赏作者
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值