Подсчитайте номер документа, который содержит один или оба термина, и значения термина должны быть в пределах диапазона - PullRequest
0 голосов
/ 20 апреля 2019

Я хочу посчитать номер документа, который

  1. имеет один или оба члена A и термин B
  2. если существует термин A или / и термин B, значение находится в диапазоне.

Мне удалось записать счет для однократного подсчета, как показано ниже, и он возвращает правильный счет. Однако, как я должен изменить его, чтобы включить термин "B" с логикой "ИЛИ"?

GET /propertyindex/_count
{
  "query": {
      "range": { 
        "A": {
          "gt": 1550160000, 
          "lte":1551369600}
      }
  }
}

1 Ответ

0 голосов
/ 20 апреля 2019

Вы можете использовать запрос bool с предложением must:

GET stackoverflow/_count
{
  "query": {
    "bool": {
      "should": [
        {
          "range": {
            "A": {
              "gt": 100, 
              "lte":500
            }
          }
        },
        {
          "range": {
            "B": {
              "gt": 100, 
              "lte":500
            }
          }
        }
      ]
    }
  }
}

Обратите внимание, что вышеуказанный запрос также будет включать документы где присутствуют как А, так и В, и любое из двух вышеуказанных условий удовлетворяет, то есть он вернет документ, где A больше 100 и менее чем равно 500, но B равно 50, наоборот.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...