ES-ip类型模糊查询

380 阅读1分钟

1.wildcard

称为通配符查询,和SQLlike是一个套路,最常用,可以用来模糊查询,但是匹配字段类型只支持 textkeyword 类型,eg:

"query":{
    "wildcard":{
        "ip_address":{
            "value":"*2606:2800*"
        }
    }
}

2.将字段存储为ip类型

此时使用term、match、bool等都可以支持模糊检索,并且ip类型支持ip段、ip范围查询

  • IPV4 模糊查询转换

eg: ip_address 的值为: 120.26.195.54

  • 输入一段:120. 需要转换为:120.0.0.0/8
  • 输入两段:120.26. 需要转换为:120.26.0.0/16
  • 输入三段:120.26.195. 需要转换为:120.26.195.0/24
  • IPV6模糊查询转换

eg: ip_address 的值为: 2606:2800:220:1:248:1893:25c8:1946

  • 输入一段:2606: 需要转换为:2606::/16
  • 输入两段:2606:2800: 需要转换为:2606:2800::/32
  • 输入三段:2606:2800:220: 需要转换为:2606:2800:220::/48
  • 以此类推...........
  • 检索结果

image-20230828173840170.png