Запросы Span

Запросы Span являются низкоуровневыми, специфическими запросами, которые предоставляют контроль над порядком и близостью указанных терминов запроса.

Вы можете использовать запросы Span для выполнения точных позиционных поисков. Запросы Span являются низкоуровневыми, специфическими запросами, которые предоставляют контроль над порядком и близостью указанных терминов запроса. Они в основном используются для поиска юридических документов и патентов.

Запросы Span включают следующие типы запросов:

Span containing

Возвращает более крупные диапазоны, которые содержат меньшие диапазоны внутри них. Полезно для поиска конкретных терминов или фраз в более широком контексте. Противоположность запросу span_within.

Span field masking

Позволяет запросам Span работать с различными полями, заставляя одно поле выглядеть как другое. Особенно полезно, когда один и тот же текст индексируется с использованием различных анализаторов.

Span first

Совпадает с терминами или фразами, которые появляются в пределах указанного количества позиций от начала поля. Полезно для поиска контента в начале текста.

Span multi-term

Позволяет многотерминным запросам (таким как префиксные, с подстановочными знаками или нечеткие) работать в рамках запросов Span. Позволяет использовать более гибкие шаблоны соответствия в поисках Span.

Span near

Находит термины или фразы, которые появляются на указанном расстоянии друг от друга. Вы можете требовать, чтобы совпадения появлялись в определенном порядке и контролировать, сколько слов может находиться между ними.

Span not

Исключает совпадения, которые пересекаются с другим запросом Span. Полезно для поиска терминов, когда они не появляются в конкретных фразах или контекстах.

Span or

Совпадает с документами, которые удовлетворяют любому из предоставленных запросов Span. Объединяет несколько шаблонов Span с логикой OR.

Span term

Основной строительный блок для запросов Span. Совпадает с одним термином, сохраняя информацию о позиции для использования в других запросах Span.

Span within

Возвращает меньшие диапазоны, которые заключены в более крупные диапазоны. Противоположность запросу span_containing.

Настройка

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

Шаг 1: Создание индекса

Сначала создайте индекс для веб-сайта электронной коммерции по продаже одежды. Поле описания использует стандартный анализатор по умолчанию, в то время как подполе description.stemmed применяет английский анализатор для включения стемминга:

PUT /clothing
{
  "mappings": {
    "properties": {
      "description": {
        "type": "text",
        "analyzer": "standard",
        "fields": {
          "stemmed": {
            "type": "text",
            "analyzer": "english"
          }
        }
      }
    }
  }
}

Шаг 2: Индексация данных

Индексиуйте образцы документов в индекс:

POST /clothing/_doc/1
{
  "description": "Рубашка с длинными рукавами и формальным воротником с пуговицами."
}

POST /clothing/_doc/2
{
  "description": "Красивое длинное платье из красного шелка, идеально подходит для формальных мероприятий."
}

POST /clothing/_doc/3
{
  "description": "Рубашка с короткими рукавами и воротником на пуговицах, можно носить как в повседневном, так и в формальном стиле."
}

POST /clothing/_doc/4
{
  "description": "Комплект из двух шелковых платьев-рубашек миди с длинными рукавами черного цвета."
}
span_not

span_not

Запрос Span not

Запрос span_not исключает диапазоны, которые пересекаются с другим запросом span. Вы …