概念
es中拥有IP数据类型。一个ip字段可以索引/存储IPv4或 IPv6地址。
示例
我们先来看一个示例。
1、映射创建
PUT example
PUT example/docs/_mapping
{
"properties":{
"id":{"type": "long"},
"browserName":{"type": "text"},
"ipAddr":{"type": "ip"},
"loginTime":{"type": "date", "format" : "yyyy-MM-dd HH:mm:ss"}
}
}
2、 新增文档
PUT example/docs/1
{
"id":1,
"browserName":"chrome",
"ipAddr": "192.168.127.164",
"loginTime":"2019-11-15 10:10:10"
}
PUT example/docs/2
{
"id":2,
"browserName":"firefox",
"ipAddr": "192.168.127.100",
"loginTime":"2019-11-15 10:12:11"
}
PUT example/docs/3
{
"id":3,
"browserName":"opera",
"ipAddr": "10.0.204.85",
"loginTime":"2019-11-15 13:02:00"
}
3、 ip类型的查询
#查询ip类型字段示例
GET example/docs/_search
{
"query": {
"term": {
"ipAddr": "192.168.0.0/16"
}
}
}
#出来2个结果
GET example/docs/_search
{
"query": {
"term": {
"ipAddr": "2001:db8::/48"
}
}
}
注意:查询IP地址最常用的方法是使用 CIDR
表示法: [ip_address]/[prefix_length]