【ES】--ES的DSL语句初识

这篇博客介绍了Elasticsearch的DSL语句,包括设置、映射的详细讲解,如字段类型、设置分析器和映射配置。还概述了基本的DSL操作,如查看索引、创建和删除文档、查询验证,以及Java代码如何执行DSL语句。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、前言

类似关系型数据库,ES也有自己的query语言,其搜索结构都是由json串组合构成请求体发送。Elasticsearch提供了基于JSON的完整查询DSL(特定于域的语言)来定义查询。
该篇文章对DSL的基本使用做简单介绍。

二、setting和mapping详解

在这里插入图片描述

1、ES的字段类型

字符串类型	   		string,text,keyword,建议keyword。
	/**
						ES索引默认支持keyword和text,其中text用于分词【不支持排序,不用于聚合,结果不准确(默认fielddata=false,聚合需要配合fielddata=true使用)】,
						keyword不支持分词【不需要分词时,那么指定字段为keyword】。
						ElasticSearch5.x以上版本,字符串将默认被同时映射成text和keyword类型。
	**/

整数类型				integer,long,short,byte   				// integer,long支持排序
浮点类型				double,float,half_float,scaled_float    // 注意浮点数进行range范围时的精度
逻辑类型				boolean
日期类型				date         支持排序
范围类型				range
二进制类型			binary
特殊类型				IP类型	   	 ip,存储iPv4,ipv6地址

其他一些特殊类型:
复合类型				数组类型array,可存储多个值
对象类型				object
嵌套类型				nested
地理类型				地理坐标类型geo_point
地理地图				geo_shape
范围类型				completion

ES索引默认支持keyword和text,其中
text用于分词【不支持排序,不用于聚合,结果不准确(默认fielddata=false,聚合需要配合fielddata=true使用)】;
keyword不支持分词【不需要分词时,那么指定字段为keyword】。
ElasticSearch5.x以上版本,字符串将默认被同时映射成text和keyword类型。即一个字段默认定义类型是type后,通过fields字段又同时支持keyword类型。那么根据具体要求,选择分词或不分词查询。

2、setting

在这里插入图片描述
tokenizer表示新的自定义分词器;
analyzer表示配置新的分析器,一般是char_filter、tokenizer和一些token filter的组合;
char_filter表示字符过滤器;
filter表示定义新的token filter,如同义词filter;
在这里插入图片描述

3、mapping

在这里插入图片描述

三、基本的DSL语句

ES中常见的查询类型分为简单查询、复合查询、聚合查询等。

1、基本DSL操作

1.1、查看es所有索引

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DreamBoy_W.W.Y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值