概念
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]