Easy-Es Easy-Es
💋首页
  • v3.0.0(当前版本)
  • What's New

    • What' s New In Easy-Es v3.0.0?
  • 历史版本

    • v1.x.x
    • v2.x.x
  • 升级指南

    • 升级到3.x.x说明
💖赞助
  • 开源社区
  • 周边好物
  • 项目PPT (opens new window)
  • 项目介绍
  • 项目成员
  • 参与贡献
加入社区讨论
谁在使用
  • Doc-Apis (opens new window)
  • 健身计划一键生成系统 (opens new window)
  • 极氪汽车
  • Vuepress-theme-vdoing (opens new window)
  • Gitee (opens new window)
  • GitCode (opens new window)
  • Github (opens new window)
  • 简体中文 (opens new window)
  • English (opens new window)

广告采用随机轮播方式显示 ❤️成为赞助商
💋首页
  • v3.0.0(当前版本)
  • What's New

    • What' s New In Easy-Es v3.0.0?
  • 历史版本

    • v1.x.x
    • v2.x.x
  • 升级指南

    • 升级到3.x.x说明
💖赞助
  • 开源社区
  • 周边好物
  • 项目PPT (opens new window)
  • 项目介绍
  • 项目成员
  • 参与贡献
加入社区讨论
谁在使用
  • Doc-Apis (opens new window)
  • 健身计划一键生成系统 (opens new window)
  • 极氪汽车
  • Vuepress-theme-vdoing (opens new window)
  • Gitee (opens new window)
  • GitCode (opens new window)
  • Github (opens new window)
  • 简体中文 (opens new window)
  • English (opens new window)
  • 快速入门

    • 简介
    • 适用场景
    • 顾虑粉碎
    • 避坑指南
    • 快速开始
    • springboot集成demo
    • spring集成指南
    • solon集成指南
    • 配置
    • 注解
  • 核心功能

    • 条件构造器

      • 条件构造器介绍
      • 索引条件构造器
      • 查询条件构造器
      • 更新条件构造器
    • 索引CRUD

      • 索引托管模式
      • 索引CRUD
    • 数据CRUD

      • 数据同步方案
      • 数据CRUD
    • 多数据源支持
    • 动态索引支持
    • 四大嵌套查询
    • 链式调用
  • 拓展功能

    • 混合查询
    • 原生查询
    • 分页查询
    • 嵌套类型
    • Join父子类型
    • 获取DSL语句
    • 执行DSL语句
    • 执行SQL语句
    • 自定义RequestOptions
    • 自定义default方法
  • 高阶语法

    • 查询字段过滤
    • 排序
    • 聚合查询
    • 分词&模糊匹配
    • 权重
    • 高亮查询
    • GEO地理位置查询
    • IP查询
      • IP
      • 最佳实践
  • 插件

    • 插件
    • 拦截器插件
    • 领域模型生成插件
  • 其它

    • 问答
    • 与MP差异
    • MySQL和EE语法对比
    • 更新日志
    • 更新计划
    • 版权
    • 鸣谢
  • v3.x文档
  • 高阶语法
老汉
2023-03-18
目录

IP查询

# IP

提示

ES本身对IP查询作了非常友好的支持,所以很适合用来存储和查询IP,需要值得注意的是,IP对应的字段其索引类型必须建立为ip类型,不可以 是text,keyword或者默认类型,否则在后面的查询中你会发现实现不了你想要的IP范围检索.

# 最佳实践

public class Document{
    // 省略其它字段...
    @IndexField(fieldType = FieldType.IP)
    private String ipAddress;
}
1
2
3
4
5

增删改与其它类型字段并无二致,不再演示,假设我已经录入一条ip地址为"192.168.1.1"至es中

    @Test
    public void testIp(){
        // 精确查询
        LambdaEsQueryWrapper<Document> wrapper = new LambdaEsQueryWrapper<>();
        wrapper.eq(Document::getIpAddress,"192.168.1.1");
        List<Document> documents = documentMapper.selectList(wrapper);
        
        // 范围检索
        LambdaEsQueryWrapper<Document> wrapper1 = new LambdaEsQueryWrapper<>();
        wrapper1.eq(Document::getIpAddress,"192.168.0.0/16");
        List<Document> documents1 = documentMapper.selectList(wrapper);
        
        // ip模糊匹配 es不支持
    }
1
2
3
4
5
6
7
8
9
10
11
12
13
14

对于上面的IPv4的IP地址含有4个bytes,而每个byte含有8个digits,在上面的/16即表示前面的16位的digits,即192.168,因此只要位于192.168.0.0 至 192.168.255.255 的IP都可以被上面的检索条件检索出来.

帮助我们改善此文档 (opens new window)
上次更新: 2025/05/11
GEO地理位置查询
插件

← GEO地理位置查询 插件→

Theme by Vdoing | Copyright © 2021-2025 老汉 | 浙ICP备2022020479号 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式