es的常用字段类型和查询
在elasticsearch 中,index就像sql中的库,type就像sql中的表,document就像sql中的记录。

Index

1)分隔数据

ElasticSearch“真正用于分隔数据的结构“只有index,而没有type,type实际上作为了一个元数据(类似SQL中的id,作为额外的标识数据)来实现逻辑划分。

2)mapping

在index中还有一个mapping,mapping管理了整个index的各个字段的属性,也就是定义了整个index中document的结构。

1、 es数据类型

1)核心数据类型

(1)字符串类型: text, keyword

(2)数字类型:long, integer, short, byte, double, float, half_float, scaled_float

(3)日期:date

(4)日期 纳秒:date_nanos

(5)布尔型:boolean

(6)Binary:binary

(7)Range: integer_range, float_range, long_range, double_range, date_range

2、查询

  1. 精确值查找

term

2)范围检索

range

3)分词检索

match

match_all

  1. 过滤条件

must/filter的区别

match:请求意味着它们被用来评定每个文档的匹配度的评分;

filter:它们将过滤出不匹配的文档,但不会影响匹配文档的分数;

5)聚合查询

aggs

Bool查询包括四种子句:

must

Filter

Should

must_not

must, 返回的文档必须满足must子句的条件,并且参与计算分值

filter, 返回的文档必须满足filter子句的条件。但是跟Must不一样的是,不会计算分值, 并且可以使用缓存

从上面的描述来看,你应该已经知道,如果只看查询的结果,must和filter是一样的。区别是场景不一样。如果结果需要算分就使用must,否则可以考虑使用filter

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐