Запрос Span containing

Запрос span_containing находит совпадения, где более крупный текстовый шаблон (например, фраза или набор слов) содержит меньший текстовый шаблон в своих границах.

Рассматривайте это как поиск слова или фразы, но только когда они появляются в определенном более широком контексте.

Например, вы можете использовать запрос span_containing для выполнения следующих поисков:

  • Найти слово “quick”, но только когда оно появляется в предложениях, которые упоминают как лисиц, так и поведение.
  • Убедиться, что определенные термины появляются в контексте других терминов — не просто где-то в документе.
  • Искать конкретные слова, которые появляются в рамках более значимых фраз.

Пример

Чтобы попробовать примеры в этом разделе, выполните шаги по настройке.

Следующий запрос ищет вхождения слова “red”, которые появляются в более крупном диапазоне, содержащем слова “silk” и “dress” (не обязательно в этом порядке) в пределах 5 слов друг от друга:

GET /clothing/_search
{
  "query": {
    "span_containing": {
      "little": {
        "span_term": {
          "description": "red"
        }
      },
      "big": {
        "span_near": {
          "clauses": [
            {
              "span_term": {
                "description": "silk"
              }
            },
            {
              "span_term": {
                "description": "dress"
              }
            }
          ],
          "slop": 5,
          "in_order": false
        }
      }
    }
  }
}

Запрос соответствует документу 1, потому что:

  • Он находит диапазон, в котором “silk” и “dress” появляются на расстоянии не более 5 слов друг от друга ("…dress in red silk…"). Термины “silk” и “dress” находятся на расстоянии 2 слов друг от друга (между ними 2 слова).
  • Внутри этого более крупного диапазона он находит термин “red”.

Ответ

Оба параметра little и big могут содержать любой тип запроса span, что позволяет создавать сложные вложенные запросы span при необходимости.

Параметры

Следующая таблица перечисляет все параметры верхнего уровня, поддерживаемые запросами span_containing. Все параметры обязательны.

Параметр Тип данных Описание
little Объект Запрос span, который должен быть содержим внутри большого диапазона. Это определяет диапазон, который вы ищете в более широком контексте.
big Объект Содержащий запрос span, который определяет границы, в пределах которых должен появиться маленький диапазон. Это устанавливает контекст для вашего поиска.