← Обзор / ai-search / configuration / indexing
Гибридный поиск
Гибридный поиск одновременно выполняет векторный поиск и поиск по ключевым словам и объединяет результаты. Для этого требуется поиск по ключевым словам быть включённым. Обзор режимов поиска см. в Режимы поиска.
Включить гибридный поиск
Настройте оба index_method.vector и index_method.keyword к true:
const instance = await env.AI_SEARCH.create({
id: "my-instance",
index_method: {
vector: true,
keyword: true,
},
fusion_method: "rrf",
});Чтобы отключить гибридный поиск, задайте index_method.keyword к false. Индекс ключевых слов удаляется.
Для каждого метода поиска можно настроить следующие параметры, влияющие на поведение поиска:
- Векторный поиск: Настройте embedding-модель.
- Поиск по ключевым словам: Настройте токенизатор и режим сопоставления.
Метод слияния
fusion_method поле определяет, как объединяются результаты векторного и ключевого поиска.
| Значение | По умолчанию | Описание |
|---|---|---|
rrf |
Да | Reciprocal Rank Fusion. Оценивает результаты по их позиции в рейтинге в обоих методах поиска. Рекомендуется для большинства сценариев использования. |
max |
Нет | Использует более высокое значение из нормализованных оценок векторного и ключевого поиска. Применяйте, если один из методов поиска стабильно оказывается более релевантным. |
Реранкинг
После слияния вы можете дополнительно применить реранкинг, чтобы переупорядочить результаты по смысловой релевантности. Реранкинг использует модель cross-encoder, которая оценивает запрос и каждый чанк вместе, что может повысить точность по сравнению с одним только слиянием.
По умолчанию реранкинг отключён. См. Реранкинг где можно включить и настроить её.
Переопределения на уровне запроса
Переопределение настроек поиска для отдельных запросов с помощью ai_search_options.retrieval.
| Поле | Тип | Описание |
|---|---|---|
retrieval_type |
"vector", "keyword", или "hybrid" |
Принудительно задаёт конкретный режим поиска. Должен быть совместим с index_method. |
fusion_method |
"rrf" или "max" |
Переопределение метода слияния. |
const instance = env.AI_SEARCH.get("my-instance");
const results = await instance.search({
messages: [{ role: "user", content: "What is Cloudflare?" }],
ai_search_options: {
retrieval: {
retrieval_type: "hybrid",
fusion_method: "rrf",
},
},
});Подробности оценки
Когда включён гибридный поиск, каждый чанк содержит scoring_details объект:
| Поле | Тип | Описание |
|---|---|---|
vector_score |
число | Оценка векторного сходства (от 0 до 1). |
keyword_score |
число | Необработанная оценка по ключевым словам BM25. |
vector_rank |
число | Позиция в наборе результатов векторного поиска. |
keyword_rank |
число | Позиция в наборе результатов поиска по ключевым словам. |
fusion_method |
string | Использованный метод слияния (rrf или max). |
reranking_score |
число | Оценка от модели реранкинга, если он включён. |
Лимиты
Экземпляры с включённым поиском по ключевым словам поддерживают до 500 000 файлов на экземпляр на тарифе Workers Paid, тогда как экземпляры только с векторным поиском поддерживают до 1 000 000. См. Лимиты и цены для полного списка ограничений.