python-3.x - 带有范围过滤器的Elasticsearch地理多边形查询

标签 python-3.x elasticsearch elasticsearch-dsl

我正在尝试使用Geo多边形点从Elasticsearch检索一些图像字段。但是我也想使用日期字段过滤掉图像。以下两个查询有效。是否可以将它们合并为一个?我非常感谢您的帮助。

**Query 1**
GET /manyimages_*/_search/
{
  "query": {
    "bool" : {
      "filter" : {
        "range": {"c_datetime": {"gte" : "2020-07-30T09:03:17.000"}}
      }
    }
  }
}

**Query 2**
GET /manyimages_*/_search/
{
  "size":10000,
  "query": 
  {    
    "geo_polygon":
        {"location":
            {"points": [[-98.59526078405563, 29.48456853315911],
[-98.59393149263758, 29.485036283823487],
[-98.58712997745901, 29.48730046713193]]}
            ,"validation_method":"STRICT","ignore_unmapped":false,"boost":1.0
          
        }
        }
    ,"_source":{"includes":["latitude","longitude","bearing_deg","c_datetime"],"excludes":["location"]
      
  }
}

最佳答案

是的,您可以在bool/filter子句中同时具有两个约束:

GET /manyimages_*/_search/
{
  "query": {
    "bool": {
      "filter": [
        {
          "range": {
            "c_datetime": {
              "gte": "2020-07-30T09:03:17.000"
            }
          }
        },
        {
          "geo_polygon": {
            "location": {
              "points": [
                [
                  -98.59526078405563,
                  29.48456853315911
                ],
                [
                  -98.59393149263758,
                  29.485036283823487
                ],
                [
                  -98.58712997745901,
                  29.48730046713193
                ]
              ]
            },
            "validation_method": "STRICT",
            "ignore_unmapped": false,
            "boost": 1
          }
        }
      ]
    }
  }
}

关于python-3.x - 带有范围过滤器的Elasticsearch地理多边形查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63461357/

相关文章:

python-3.x - Python3中的异常处理

python - 在同一程序中使用 Python 2 和 3 库的正确方法(如果有)是什么?

Python3 & Tkinter,list.sort 由 StringVar 组成的对象列表

unit-testing - Elasticsearch 6.2在单元测试中启动localhost http节点

python - 如何使用 Telethon 获取转发消息的 channel /聊天/用户名?

elasticsearch - 使用elasticsearch对完整字符串进行排序

sql - 具有多个字段和条件的Elasticsearch查询(非过滤器)

elasticsearch - Elasticsearch 中的嵌套查询

elasticsearch - 在Elasticsearch中使用非嵌套映射过滤聚合 key

python - 如何使用 elasticsearch-dsl 在嵌套查询周围添加 OR 过滤器