Запросы на уровне терминов

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

Выделяют следующие основные виды запросов на уровне терминов:

  • exists query – возвращает документы, которые содержат индексированное значение в указанном поле;

  • range query – возвращает документы, которые содержат значения в указанном диапазоне;

  • regexp query – возвращает документы, содержащие значения, соответствующие регулярному выражению;

  • term query – возвращает документы, которые содержат точное значение в указанном поле, не рекомендуется использовать для поиска по текстовым полям;

  • terms query – аналогичен term query, возвращает документы, содержащие одно или несколько точных значений в указанном поле;

  • wildcard – возвращает документы, содержащие значения, соответствующие указанному шаблону; в шаблоне аналитик "*" соответствует 0 и более символов, аналитик "?" соответствует одному любому символу.

Основным параметром в запросе Exists query является: field – поле, которое необходимо найти:

GET /_search
{
  "query": {
        "exists": {
          "field": "user"
        }
    }
}

Основными параметрами в запросе Range query являются:

  • field – поле, по значениям которого осуществляется поиск;

  • gt – аналитик "больше";

  • gte – аналитик "больше или равно";

  • lt – аналитик "меньше";

  • lte – аналитик "меньше или равно":

GET _search
{
    "query": {
        "range": {
            "age": {
                "gte": 10,
                "lte": 20
            }
        }
    }
}

Основными параметрами в запросе Regexp query являются:

  • field – поле, по значениям которого осуществляется поиск;

  • value – регулярное выражение для поиска значений:

GET /_search
{
    "query": {
        "regexp": {
            "user": {
                "value": "A.*n"
            }
        }
    }
}

Основными параметрами в запросе Term query являются:

  • field – поле, по значениям которого осуществляется поиск;

  • value – значение, которое нужно найти в выбранном поле:

GET /_search
{
    "query": {
        "term": {
            "user": {
                "value": "Admin"
            }
        }
    }
}

Основным параметром в запросе Terms query является: field – поле, по значениям которого осуществляется поиск:

GET /_search
{
    "query": {
        "terms": {
            "user": ["Admin ", "User"]
        }
    }
}

Основными параметрами в запросе Wildcard query являются:

  • field – поле, по значениям которого осуществляется поиск;

  • value – шаблон запроса, по которому нужно найти значение в выбранном поле:

GET /_search
{
    "query": {
        "wildcard": {
            "user": {
                "value": "Ad*n"
            }
        }
    }
}