如何在Elasticsearch中定义IP数组?

时间:2017-03-31 10:34:07

标签: elasticsearch

我正在使用Elasticsearch 5.3。在索引中,我想将字段定义为ip字段的数组。如何在映射中定义它?

2 个答案:

答案 0 :(得分:3)

IP映射也可用于IP阵列。

PUT my_index
{
  "mappings": {
    "my_type": {
      "properties": {
        "ip_addr": {
          "type": "ip"
        }
      }
    }
  }
}

在这里,您只需将IP索引为数组。

PUT my_index/my_type/1
{
  "ip_addr": ["192.168.1.1", "192.168.1.2"]
}

然后你可以照常搜索它们。

GET my_index/_search
{
  "query": {
    "term": {
      "ip_addr": "192.168.0.0/16"
    }
  }
}

单个条目和数组的映射在Elasticsearch中实际上总是相同的(对于原始数据类型)。

答案 1 :(得分:2)

您应该使用ip数据类型:

PUT my_index
{
  "mappings": {
    "my_type": {
      "properties": {
        "ip_addr": {
          "type": "ip"
        }
      }
    }
  }
}

Official docs for ip data type