Фильтр Elasticsearch по результату вложенной агрегации - PullRequest
0 голосов
/ 09 января 2019

Скажем, у нас есть следующий индекс предметов со вложенным свойством резервирования. У каждого товара есть свойство количества, где они могут указать, сколько у них запасов.

Было бы легко создать запрос для поиска ключевых слов на основе заголовка и описания элемента, но я понятия не имею, как создать запрос для удовлетворения следующего утверждения: «Мне нужно знать, у кого есть доступные инвалидные коляски в период с 1 января по 10 января. "

Сначала я проверяю, есть ли в названии и описании инвалидная коляска, затем для каждого из этих предметов мне нужно сложить все резервы с 1 по 10 января, а затем вычесть это количество товара, чтобы узнать, что предмет доступен.

Как это перевести на запрос эластичного поиска?

PUT items
{
  "mappings": {
    "default": {
      "properties": {
        "owner": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        },
        "title": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        },
        "fullDescription": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        },
        "quantity": {
          "type": "long"
        },
        "reservations": {
          "type": "nested",
          "properties": {
            "endDate": {
              "type": "date",
              "format": "date_optional_time"
            },
            "quantity": {
              "type": "long"
            },
            "startDate": {
              "type": "date",
              "format": "date_optional_time"
            }
          }
        }
      }
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...