[英]Elasticsearch Filter Query by CIDR
例如,您將如何構建一個Elasticsearch查詢,該查詢被包含與192.168.100.14/24
匹配的ip
字段的文檔過濾?
{
query: {
filtered: {
filter: {
???
}
}
}
}
為了明確起見,我正在搜索的文檔具有被索引為IP字段的屬性,並且我想查找所有IP匹配CIDR掩碼(將在過濾器中指定)的文檔。
如果使用ES 2.2或更高版本,請嘗試以下操作:
{"query": {"term" : {"<ip_field_name>" : "192.168.100.14/24"}}}
elasticsearch類型ip
不支持該類型的輸入。 這是顯示失敗的示例:
PUT index1
{
"mappings": {
"type1": {
"properties": {
"ip_addr": {
"type": "ip"
}
}
}
}
}
POST index1/type1
{
ip_addr: "192.168.100.14/24"
}
{
"error": {
"root_cause": [
{
"type": "mapper_parsing_exception",
"reason": "failed to parse [ip_addr]"
}
],
"type": "mapper_parsing_exception",
"reason": "failed to parse [ip_addr]",
"caused_by": {
"type": "illegal_argument_exception",
"reason": "failed to parse ip [192.168.100.14/24], not a valid ip address"
}
},
"status": 400
}
相反,如果去除/24
,它將正常工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.