目录
一、前言
类似关系型数据库,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以上版本,