Сложные запросы

Сложные запросы позволяют объединять более простые или другие сложные запросы и выводить обобщенные результаты. Среди них можно выделить тип запросов Bool.

Bool query – запрос, который осуществляет поиск с использованием логической комбинации других запросов. Запрос строится с использованием одного или нескольких логических предложений, каждое из которых имеет типизированное вхождение:

  • must – предложение должно появляться в документах;

  • filter – предложение должно появляться в документах;

  • must_not – предложение не должно появляться в документах;

  • should – предложение может появляться в документах:

GET _search
{
    "query": {
        "bool": {
            "must": {
                "term": { "user": "Admin" }
            },
            "filter": {
                "term": { "tag": "tech" }
            },
            "must_not": {
                "range": {
                    "age": { "gte": 10, "lte": 20 }
                }
            },
            "should": [
                { "term": { "tag": "wow" } },
                { "term": { "tag": "opensearch" } }
            ]
        }
    }
}

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