Thinkphp5使用Elasticsearch

本文介绍如何在ThinkPHP5项目中使用阿里云Elasticsearch服务,包括安装Elasticsearch-php插件、新建和映射索引、插入和查询索引文档等操作。涵盖了从环境搭建到基本查询的全过程。
摘要由CSDN通过智能技术生成

Thinkphp5使用Elasticsearch

使用的阿里云Elasticsearch服务,免去安装步骤

1.tp项目中安装Elasticsearch-php插件 ,composer安装

在这里插入图片描述

安装版本与elasticsearch版本一致,我这边elasticsearch7.7.1,安装elasticsearch-php 7.0 ,大版本一致的情况下DSL语法不会有很大差别.

2.项目中引入

在这里插入图片描述

3.使用(新建索引,映射索引,插入索引文档,查询索引文档,更新索引文档)

a.新建索引(相当于mysql新建库)

在这里插入图片描述

number_of_shards 主分片数 (默认值5)
number_of_replicas 副本分片数(默认值1)
这两个值取决于elasticsearch的节点数,一般elasticsearch集群多服务器多节点,没配置过,所以阿里云的服务很方便.
max_result_window 返回最大记录数

b.映射索引(相当于mysql表格新增字段,type对应一张表,es7.0之后已经不支持index对应多个type了)
在这里插入图片描述

需要作为查询字段的字符串设置为text,并设置分词ik_smart,分词插件需要另外安装,然后网上查询分词库,导入.
筛选字段设置为integer,时间筛选我转为int时间戳类型来筛选,elasticsearch也支持的date类型的字段筛选.
Keyword类型可作为关键字匹配,分类筛选时可整词匹配.

在这里插入图片描述

c.插入索引文档(相当于向mysql表里面插入数据)

在这里插入图片描述
在这里插入图片描述

id我取的数据库的主键id,必须唯一
d.查询
筛选查询 bool查询里使用filter
在这里插入图片描述

如果需要多个筛选字段,filter里面嵌套bool查询,must必须满足,must里面套多个range数组
在这里插入图片描述

track_total_hits 返回所有满足记录数
Size 和 from 分页
Sort 排序 $sort排序字段

整词匹配查询(可以做到整词匹配,我这边将分类设置为keyword,可以作为分类筛选,int型也可整词匹配,比如单独匹配值为1的)
在这里插入图片描述

bool查询 match匹配,同时满足多个匹配,就是组装多个match数组,类似range

模糊查询,bool查询里must和should同时使用需要设置minimum_should_match为1
在这里插入图片描述

这都是最基本的搜索DSL,多条件的列表查询筛选应该是够了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值