ТЕХНОЛОГИИ

Поиск фрагментов Elasticsearch: nested kNN и подтверждающие inner hits

В этом материале
ГЛАВНОЕ ЗА МИНУТУ

Nested kNN ранжирует родительский документ по лучшему совпавшему фрагменту, а supporting inner hits указывают фрагмент, давший эту оценку.

Поиск вложенных фрагментов Elasticsearch должен возвращать отрывок, создавший совпадение документа, а не только родительский объект. Без него подходящее название скрывает, что подтверждение взято из другого раздела, редакции или условной инструкции внутри длинного руководства, а фактически нужная процедура в найденном результате отсутствует.

Понять оценки документа и фрагмента

Официальное руководство nested kNN описывает векторы вложенных разделов и ранжирование родителей по лучшему фрагменту. Nested kNN поддерживает режим оценки max. Это отличается от среднего всех отрывков и от неограниченного списка независимых chunks. Политику выбора родителей учитывают при интерпретации, особенно если много полезных фрагментов принадлежит одному большому руководству. Высокое место документа само по себе ещё не показывает, какие его разделы реально стали основанием поискового результата и доступны для последующего ответа.

Поместить условия в правильную область

Справочник nested query объясняет совпадения вложенных объектов. Условия одного фрагмента должны ограничивать соответствующий объект совместно. Родитель способен содержать действующую процедуру и устаревшее приложение одновременно. Наличие текущего статуса где-то в документе не доказывает, что совпавший по вектору отрывок относится к действующей процедуре. Поэтому область фильтрации проверяют отдельно от семантической близости, не подменяя обязательное отношение между свойствами простым наличием нужных значений в разных частях одного большого родительского объекта.

Проверить обманчивый родительский результат

Создадим руководство с релевантным устаревшим отрывком и менее похожим действующим. Запросим актуальную процедуру и рассмотрим родительский результат вместе с вложенным подтверждением. Затем добавим другое руководство с действительно применимым фрагментом. Пример обнаруживает запрос, удовлетворяющий релевантности и применимости в разных объектах: родитель выглядит убедительно, хотя требуемой связи с источником нет. Контрольный ответ должен ссылаться на конкретную процедуру, чтобы название целого документа не засчитывалось достаточным доказательством правильного выбора и применимости найденного содержания.

Элемент ответаЧто требуется проверить
Родительский результатКакой документ выбран
Метаданные родителяПрименимость уровня документа
Вложенный результатКакой раздел создал совпадение
Метаданные фрагментаПрименимость конкретного подтверждения

Явно вернуть подтверждающие отрывки

Официальный справочник inner_hits описывает получение совпавших вложенных объектов. Руководство nested kNN показывает inner_hits для отрывка, создавшего оценку. При нескольких kNN-ветках им назначают разные имена согласно документации. Запрашивают поля восстановления подтверждения, а не показывают произвольный первый абзац родителя. С текстом сохраняют идентификаторы раздела и редакцию источника. Это позволяет проверить цитату непосредственно по найденному вложенному объекту, не угадывая его местоположение по похожей фразе среди остальных разделов руководства.

Совместно проверить разнообразие и цитаты

Устанавливают фактически возвращаемое число родителей и поддерживающих отрывков выбранного запроса. Разнообразие документов не доказывает перечисление всех релевантных chunks. Inner hit разрешают в исходный раздел и проверяют его условия. Артефакт приёмки — цепочка от родителя к подтверждающему фрагменту с правильной областью вложенности, а не правдоподобный рейтинг документов с цитатами из наиболее удобного для показа текста. Такое разделение помогает диагностировать и поисковый выбор, и ошибки сборки ответа по возвращённым результатам.

Связанные материалы: Локальный RAG-сервер: какие компоненты размещать рядом с GPU; Память векторной базы: как выбрать RAM и диск для поиска.

← Все материалы