Полнотекстовые запросы

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

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

  • Match phrase query – возвращает документы, которые соответствуют указанной фразе); в отличие от match query, в данном запросе строка интерпретируется как единое целое "this is a test";

  • Query string – возвращает документы на основе строки запроса, используя синтаксический анализатор со строгим синтаксисом); запрос использует синтаксис для анализа и разделения строки запроса на основе аналитиков "AND" и "OR"; затем независимо анализируется каждая разделенная часть текста.

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

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

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

  • operator – один из логических аналитиков "AND" и "OR" (по умолчанию); при использовании аналитика "AND" запрос интерпретирует строку "this is a test" как "this AND is AND a AND test"; при использовании аналитика "OR" - как "this OR is OR a OR test":

GET /_search
{
    "query": {
        "match": {
            "message": {
                "query": "this is a test",
                "operator": "and"
            }
        }
    }
}

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

GET /_search
{
    "query": {
        "match_phrase": {
            "message": "this is a test"
        }
    }
}

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

  • query – строка запроса, которая используется для поиска;

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

GET /_search
{
    "query": {
        "query_string": {
            "query": "(new york city) OR (big apple)",
            "default_field": "content"
        }
    }
}