Перейти к основному содержимому
Версия: 6.0

semanticsearch

Описание

Выполняет семантический поиск по векторному полю через neural-запрос OpenSearch.

осторожно

Команда semanticsearch доступна только для источников с типом OpenSearch.

осторожно

Использование semanticsearch в запросе допустимо в случае, если перед ней находятся только команды, также работающие с внутренними механизмами хранилища. К ним относятся source и peval. Это условие должно выполняться и для всех подзапросов в запросе.

Синтаксис

... | semanticsearch vector_field="<field>" query="<text>" model_id="<id>" [k=<int>]

Обязательные аргументы

к сведению

Для работы команды необходим индекс с векторным полем типа knn_vector и настроенная ML-модель для векторизации. Подробнее — в документации OpenSearch.

ПараметрСинтаксисОписание
vector_fieldvector_field="<field>"Имя векторного поля (knn_vector) в индексе.
queryquery="<text>"Текстовый семантический запрос для neural.query_text.
model_idmodel_id="<id>"Идентификатор ML-модели OpenSearch для векторизации запроса.

Опциональные аргументы

ПараметрСинтаксисПо умолчаниюОписание
kk=<int>10Количество ближайших соседей в neural-запросе.
подсказка

Каждое результирующее событие содержит служебное поле _score — релевантность по результату векторного поиска.


Примеры запросов

Пример 1 — базовый семантический поиск

Поиск по индексу событий безопасности с возвратом 10 ближайших результатов.

source soc_events_prod qsize=10
| semanticsearch
vector_field="event_embedding"
query="Признаки lateral movement через удаленный запуск команд и кражу credential"
model_id="_SNEuZwBQv2NK73Va9Ko"

Пример 2 — поиск с ограничением числа соседей

Параметр k ограничивает число ближайших соседей, возвращаемых neural-запросом, до 3.

source soc_events_prod qsize=10
| semanticsearch
vector_field="event_embedding"
query="Признаки lateral movement через удаленный запуск команд и кражу credential"
model_id="_SNEuZwBQv2NK73Va9Ko"
k=3

Пример 3 — совместное использование с ai

Результаты семантического поиска передаются в ai для обогащения каждой строки полями анализа.

source soc_events_prod
| semanticsearch
vector_field="event_embedding"
query="Признаки lateral movement через удаленный запуск команд и кражу credential"
model_id="zXjJepwBnjnQtEv1MFtK"
| ai
model="gpt-oss-20b"
mode="per_row"
input="host.name,user.name,message"
user_message="Для каждой строки верни risk, type, reason"
output="risk,type,reason"