原英文版地址: https://www.elastic.co/guide/en/elasticsearch/reference/7.7/ip.html, 原文档版权归 www.elastic.co 所有
本地英文版地址: ../en/ip.html
本地英文版地址: ../en/ip.html
重要: 此版本不会发布额外的bug修复或文档更新。最新信息请参考 当前版本文档。
PUT my_index { "mappings": { "properties": { "ip_addr": { "type": "ip" } } } } PUT my_index/_doc/1 { "ip_addr": "192.168.1.1" } GET my_index/_search { "query": { "term": { "ip_addr": "192.168.0.0/16" } } }
还可以使用 ip_range 数据类型 在单个字段中存储 IP 范围。
ip
字段接受以下参数:
映射字段级查询时提升,默认值为 |
|
是否应该以列跨度(column-stride)的方式将字段存储在磁盘上,以便以后用于排序、聚合或编写脚本?
接受 |
|
该字段应该是可搜索的吗?接受 |
|
接受替换任何显式 |
|
字段值是否应该与 |
查询ip地址最常用的方法是使用CIDR符号:[ip_address]/[prefix_length]
。例如:
GET my_index/_search { "query": { "term": { "ip_addr": "192.168.0.0/16" } } }
或者
GET my_index/_search { "query": { "term": { "ip_addr": "2001:db8::/48" } } }
还要注意,冒号在query_string
查询中是特殊字符,因此 ipv6 地址需要转义。
最简单的方法是用引号将搜索的值括起来:
GET my_index/_search { "query": { "query_string" : { "query": "ip_addr:\"2001:db8::/48\"" } } }