составной запросasticsearch по двум полям - PullRequest
1 голос
/ 27 февраля 2020

Я хочу написать сложный эласт c поисковый запрос. Я знаю, как написать их отдельно. Но не знаю, как их объединить. У меня есть два поля в do c. (Paid (логическое) и money (float)). Я хочу, чтобы все документы были оплачены = false и деньги> 0. Это то, что я сделал.

GET /_search
{
    "query": {
        "range" : {
            "money" : {
                "gte" : 0,
                "lte" :1000
            }
        }
    }
} 
GET /_search
{
  "query": {
    "term": {
      "paid": false 
    }
  }
} 

РЕДАКТИРОВАТЬ1

Теперь, если у меня есть вложенное поле, я также хочу выполнить поиск по нему.

GET /_search
{
  "query": {
    "nested": {
      "path": "sellers_info",
      "query": {
        "bool": {
          "must": [
            {
              "match": {
                "sellers_info.seller_label": "Owner"
              }
            }

          ]
        }
      }
    }
  }
}

Как объединить эти три?

1 Ответ

1 голос
/ 27 февраля 2020

Отличное начало! Просто объедините их с bool/filter, например:

GET /_search
{
  "query": {
    "bool": {
      "filter": [
        {
          "term": {
            "paid": false
          }
        },
        {
          "range": {
            "money": {
              "gte": 0,
              "lte": 1000
            }
          }
        }
      ]
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...