← Обзор / ai-search / configuration / indexing
Фильтрация путей
Фильтрация путей позволяет определять, какие файлы или URL-адреса индексируются, с помощью шаблонов включения и исключения. Используйте её, чтобы ограничить индексирование конкретным содержимым или пропустить файлы, которые не должны быть доступны для поиска.
Фильтрация путей работает как с сайт и R2 источников данных.
Конфигурация
Вы можете настроить фильтры путей при создании или редактировании экземпляра AI Search. В dashboard откройте Фильтры путей и добавьте правила включения или исключения. Фильтры путей можно изменить в любой момент в Настройки страницу вашего экземпляра.
При использовании REST API укажите include_items и exclude_items в source_params вашей конфигурации:
| Параметр | Тип | Лимит | Описание |
|---|---|---|---|
include_items |
string[] |
Максимум 10 шаблонов | Индексируйте только элементы, соответствующие хотя бы одному из этих шаблонов |
exclude_items |
string[] |
Максимум 10 шаблонов | Пропускайте элементы, соответствующие любому из этих шаблонов |
Оба параметра необязательны. Если ни один из них не указан, индексируются все элементы источника данных.
Поведение фильтрации
Правила использования подстановочных знаков
Правила исключения имеют приоритет над правилами включения. Фильтрация выполняется в следующем порядке:
- Проверка исключения: Если элемент соответствует любому шаблону исключения, он пропускается.
- Проверка включения: Если заданы шаблоны включения и элемент не соответствует ни одному из них, он пропускается.
- Индекс: Элемент переходит к индексированию.
| Сценарий | Поведение |
|---|---|
| Правила не заданы | Индексируются все элементы |
Только exclude_items определено |
Индексируются все элементы, кроме тех, что соответствуют шаблонам исключений |
Только include_items определено |
Индексируются только элементы, соответствующие хотя бы одному шаблону включения |
| Оба заданы | Сначала проверяются шаблоны исключения, а затем оставшиеся элементы должны соответствовать шаблону включения |
Синтаксис шаблонов
Шаблоны используют синтаксис подстановочных знаков с учётом регистра на основе micromatch ↗:
| Подстановочный знак | Значение |
|---|---|
* |
Соответствует любым символам, кроме разделителей пути (/) |
** |
Соответствует любым символам, включая разделители пути (/) |
Шаблоны могут содержать:
- Буквы, цифры и символы подчёркивания (
a-z,A-Z,0-9,_) - Дефисы (
-) и точки (.) - Разделители пути (
/) - Символы URL (
?,:,=,&,%) - Подстановочные знаки (
*,**)
Статус задания индексирования
Элементы, пропущенные из-за правил фильтрации, записываются в журналы заданий с указанием причины:
- Совпадение по исключению:
Skipped by rule: {pattern} - Нет совпадения с шаблоном включения:
Skipped by Include Rules
Их можно просмотреть на вкладке Jobs экземпляра AI Search, чтобы убедиться, что фильтры работают как ожидается.
Важные замечания
- Учёт регистра: При сопоставлении с шаблонами учитывается регистр.
/Blog/*не совпадает с/blog/post.html. - Полное сопоставление пути: Шаблоны сопоставляются со всем путём или URL-адресом. Используйте
**в начале для частичного совпадения. Например,docs/*совпадает сdocs/file.pdfно неsite/docs/file.pdf, тогда как**/docs/*соответствует обоим. - Один
*не пересекает границы каталогов: Используйте**если хотите, чтобы шаблон срабатывал через разделители пути. Например,docs/*совпадает сdocs/file.pdfно неdocs/sub/file.pdf, тогда какdocs/**соответствует обоим. - Конечные слэши имеют значение: URL-адреса сопоставляются как есть, без нормализации.
/blog/не совпадает с/blog.
Примеры
Источник данных R2
| Сценарий использования | Шаблон | Проиндексировано | Пропущено |
|---|---|---|---|
| Индексация только PDF-файлов в документах | Включает: /docs/**/*.pdf |
/docs/guide.pdf, /docs/api/ref.pdf |
/docs/guide.md, /images/logo.png |
| Исключить временные файлы и резервные копии | Исключить: **/*.tmp, **/*.bak |
/docs/guide.md |
/data/cache.tmp, /old.bak |
| Исключить временные папки и папки с резервными копиями | Исключить: /temp/**, /backup/** |
/docs/guide.md |
/temp/file.txt, /backup/data.json |
| Индексация документов с исключением черновиков | Включает: /docs/**, Исключить: /docs/drafts/** |
/docs/guide.md |
/docs/drafts/wip.md |
| Ограничьте экземпляр одним тенантом | Включает: /customers/acme/** |
/customers/acme/report.pdf |
/customers/globex/report.pdf |
Чтобы дать каждому тенанту изолированный экземпляр на основе одного общего бакета, см. Мультитенантность.
Источник данных «Сайт»
| Сценарий использования | Шаблон | Проиндексировано | Пропущено |
|---|---|---|---|
| Индексация только страниц блога | Включает: **/blog/** |
example.com/blog/post, example.com/en/blog/article |
example.com/about |
| Исключить страницы администрирования | Исключить: **/admin/** |
example.com/blog/post |
example.com/admin/settings |
| Исключить страницы входа | Исключить: **/login* |
example.com/blog/post |
example.com/login, example.com/auth/login-form |
| Индексация документов с исключением черновиков | Включает: **/docs/**, Исключить: **/docs/drafts/** |
example.com/docs/guide |
example.com/docs/drafts/wip |
Формат API
При использовании API укажите шаблоны в source_params:
{
"source_params": {
"include_items": ["<PATTERN_1>", "<PATTERN_2>"],
"exclude_items": ["<PATTERN_1>", "<PATTERN_2>"]
}
}