Skip to content

IS NULL filter operator #300

Closed
Closed
@jamesfisher-geo

Description

@jamesfisher-geo

Describe the bug
IS NULL is included in the filter extension logic. However, I cannot get it to work with cql2-json or cql2-text.

To Reproduce
Steps to reproduce the behavior:

  1. docker compose up app-opensearch or docker compose up app-elasticsearch
  2. python3 data_loader.py --base-url http://localhost:8082
  3. Try the following:
    POST http://localhost:8082/search
    body
{
  "filter-lang": "cql2-json",
  "filter": {
            "op": "isNull",
            "args": [ { "property": "sentinel:data_coverage" } ]
          }

}
{
    "detail": "Error with cql2_json filter: Q() can only accept dict with a single query ({\"match\": {...}}). Instead it got ({})"
}

GET http://localhost:8082/search?filter=sentinel:data_coverage > 50 OR landsat:coverage_percent < 10 OR (sentinel:data_coverage IS NULL AND landsat:coverage_percent IS NULL)

{
    "detail": "Error with cql2_json filter: Q() can only accept dict with a single query ({\"match\": {...}}). Instead it got ({})"
}

Expected behavior
valid ItemCollection

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions