在弹性搜索中对类型为Ip的字段进行通配符查询

时间:2019-03-15 09:37:36

标签: elasticsearch wildcard

我有一个索引模板,其字段类型为Ip,如下所示。

 "clientIpAddress": {
      "type": "ip"
  },

如何在此类字段上使用通配符搜索查询进行搜索。我正在尝试以下搜索查询。

"clientIpAddress":  "10.*"
  

但是我遇到了错误:   “ '10。*'不是IP字符串文字。

需要帮助来找到正确的通配符查询。

1 个答案:

答案 0 :(得分:1)

您有两种选择来搜索IP类型的查询:

方法1:

curl -XPOST localhost:9200/index_name/type_name/_search -d '{
"query": {
"query_string": {
  "query": "clientIpAddress:[192.168.1.100 TO 192.168.1.102]"
}
}
}'

方法2:

curl -XPOST localhost:9200/index_name/type_name/_search -d '{
"query": {
"range": {
  "add": {
    "gte": "192.168.1.100",
    "lte": "192.168.1.102"
  }
}
}
}'