Использование логического запроса AND в Kibana и C# NEST - PullRequest
0 голосов
/ 22 апреля 2020

Я пытаюсь реализовать простой запрос в Кибане, а затем в C# NEST. Я из SQL фона и изо всех сил пытаюсь найти документацию для выполнения относительно простого SQL запроса в Elasticsearch. Запрос, который я пытаюсь реализовать, эффективен ......

SELECT * FROM table 
WHERE logdate > STR_TO_DATE('2020-02-01 23:59:59','%Y-%m-%d %H:%i:%s')
AND logdate < STR_TO_DATE('2020-02-03 00:00:00','%Y-%m-%d %H:%i:%s')
AND username = 'user01'

Я могу сделать их как отдельные запросы кибана ....

GET auditlog/_search
{
  "query": {
    "range": {
      "logdate": {
        "gt": "2020-02-01T23:59:59",
        "lt": "2020-02-03T00:00:00"
      }
    }
  }
}

GET table/_search
{
  "query": {
    "match": {
      "username": "user01"
    }
  }
}

Но когда я пытаюсь и объединяя их в один запрос, я получаю ошибку "parsing_exception" ...

GET auditlog/_search
{
  "query" : {
    "bool" : {
      "must": [
        {
          "match": {
            "username": "user01"
          },
          "range": {
            "logdate": {
              "gt": "2020-02-01T23:59:59",
              "lt": "2020-02-03T00:00:00"
            }
          }
        }
      ]
    }
  }
}

Я просмотрел документацию Elasticsearch и, похоже, не могу найти ответ, поэтому любая помощь будет оценена, заранее спасибо

1 Ответ

1 голос
/ 22 апреля 2020

Попробуйте это

GET auditlog/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "username": "user01"
          }
        },
        {
          "range": {
            "logdate": {
              "gt": "2020-02-01T23:59:59",
              "lt": "2020-02-03T00:00:00"
            }
          }
        }
      ]
    }
  }
}
...