原英文版地址: 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\""
}
}
}