springboot 的 elasticsearch 版本:
7.15.2
前情提要:
1.首先要理解 elasticsearch 对于【数据类型】很严格,如果字段类型不规范,在 检索/排序/聚合 时候类型不正确就会出现报错或者查不到数据的问题。所以在一般String类型插入结构如下:
这样的结构,不仅可以支持分词查询,也可以进行精准匹配、对该字段排序、对该字段进行聚合。一箭双雕,通常String都建议用这样的结构。
2.如果是数值类型(Integer、Long、Double)更适合进行排序、聚合、精准匹配。如果确定某类的某个属性是【数值】,最好不要使用String接收(并非完全不可使用),用数值类型接收更合理。如下:
3.如果某个类的属性是Object类型,在进行检索、聚合等操作时,es的type类型不必做其它操作,如下: