# Что попадает в поиск (/ru/docs/what-is-indexed)

Узнайте до поиска, можно ли вообще найти то, что вы помните: фразу, PDF, голосовое, веб-страницу или фото. Каждый вид содержимого попадает в поиск по-своему. Что-то работает сразу, что-то требует одной команды, а часть выключена, пока вы её не включите. Индексирование идёт на вашем компьютере, индекс лежит в локальном архиве. Исключения названы там, где они есть.

## Прежде чем начать [#прежде-чем-начать]

Поиск читает локальный архив, а не мессенджер. Сначала скачайте историю чата: [Поиск](/llms.mdx/docs/ru/search/content.md#%D1%81%D0%BD%D0%B0%D1%87%D0%B0%D0%BB%D0%B0-%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%B8%D1%82%D0%B5-%D0%B8%D1%81%D1%82%D0%BE%D1%80%D0%B8%D1%8E-%D0%BD%D1%83%D0%B6%D0%BD%D1%8B%D1%85-%D1%87%D0%B0%D1%82%D0%BE%D0%B2). Пустой результат не доказывает, что ничего не отправляли.

## Что нужно каждому виду [#что-нужно-каждому-виду]

| Содержимое | Что ищется | Что нужно |
| --- | --- | --- |
| Текст сообщений | Слова, фразы, отправитель, чат, дата | Ничего: работает, как только сообщение сохранено |
| Текст файлов и документов | Слова внутри файла (`content:`) | Одна команда: `attachments extract` |
| Веб-страницы (файлы HTML) | Слова основного текста | Та же команда |
| Голосовые | Сказанные слова (`transcript:`) | Модель речи один раз, затем `messages transcribe` |
| Телефоны, почта, ссылки | Само значение в любой записи | Ничего сверх этого: находятся в сообщениях, тексте файлов и расшифровках |
| Картинки по окружению | Смысл чата вокруг фото | Текстовая модель один раз, затем `conversations embed` |
| Картинки по тому, что на них | Английские слова, например "dog on a beach" | Настройка, скачивание модели и `images embed` |
| Сканы и фото с текстом | Слова из текста | Агент читает изображение и сохраняет текст |

Для каждой строки верно одно. Файлы и картинки читаются на вашем компьютере и не меняются. Во внешний сервис они уходят, только если вы его выбрали: сервис моделей для массового распознавания сканов (ниже) или удалённая модель для поиска по смыслу.

## Текст сообщений [#текст-сообщений]

Текст каждого сохранённого сообщения индексируется вместе с отправителем, чатом, датой, ссылками и данными о вложениях. Поиск по словам находит и другие формы слова. Для точной фразы используйте `exact:`. Как работает сопоставление: [Как работает поиск](/llms.mdx/docs/ru/search-architecture/content.md).

```sh
tg personal search messages invoice
max personal search messages 'exact:"final invoice"'
```

`has:text` оставляет сообщения с текстом. С `NOT` находит те, где текста нет, например фото без подписи:

```sh
tg personal search messages 'has:photo NOT has:text'
```

## Файлы и документы [#файлы-и-документы]

`attachments extract` читает текст скачанных файлов и сохраняет его в архиве. После этого `content:` ищет внутри них. Чтение идёт на вашем компьютере.

```sh
tg personal attachments extract --chat "Book club" --download --output-dir ./files
tg personal search messages 'content:invoice'
```

Есть читатели для:

* Простой текст: `.txt`, `.md`, `.markdown`, `.json`, `.log`, в том числе в распространённых старых кодировках.
* Таблицы: `.csv`, `.tsv`, `.xlsx`, `.ods`, с листом, строкой и столбцом.
* Документы и презентации: `.pdf` с текстовым слоем, `.docx`, `.doc`, `.rtf`, `.odt`, `.pptx`, `.odp`, `.epub`.
* Веб-страницы: `.html`, `.htm`, `.xhtml`.

Веб-страница читается ради основного текста, а не разметки. Меню, подвалы и баннеры о cookie отбрасываются, из интернета ничего не загружается. Заголовки, списки, таблицы и текст ссылок остаются.

Файлы, которые нельзя прочитать как текст, например сканы и фото, попадают в список «нужен текст». Текст, который для них написал ваш агент, считается текстом файла, и `content:` его находит.

### Сканы и фото с текстом [#сканы-и-фото-с-текстом]

Агент читает изображение своими средствами зрения и сохраняет слова:

```sh
tg personal attachments list --chat "Book club" --needs-text
tg personal attachments text set "Book club" 204 --text-file ./scan.txt
```

Для многих сканов можно выбрать сервис моделей. Это единственное место, где файлы покидают компьютер: `attachments extract --ocr` отправляет изображения и страницы отсканированных PDF в настроенный вами сервис. Без `--ocr` никакая модель не вызывается.

## Голосовые [#голосовые]

Голосовое становится доступным для поиска, когда у него есть расшифровка. Инструмент сохраняет её и находит по обычному слову или по `transcript:`.

```sh
max personal models audio download gigaam-v3
max personal messages transcribe "Book club" 204
max personal search messages 'transcript:invoice'
```

* Модель речи работает на вашем компьютере. Запись его не покидает. Модель скачивается один раз командой `models audio download`; сама она не скачивается.
* Модели: `parakeet-v3` знает 25 языков, `gigaam-v3` лучше всех для русского.
* `tg` может использовать и расшифровку самого Telegram, если она есть у вашего аккаунта (`transcribeWith`: `auto`, `messenger` или `local`). `max` всегда использует модель на вашем компьютере.
* Локальная расшифровка читает полную запись Ogg Opus. Длинным записям нужно больше памяти и времени.
* Расшифровка не мгновенна. `--transcribe` у `messages list` расшифровывает показанные голосовые, у которых ещё нет текста.

В файлах и расшифровках слово ищется в точной форме. Другие формы слова ищутся только в тексте сообщений.

## Телефоны, почта и ссылки [#телефоны-почта-и-ссылки]

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

```sh
tg personal search messages 'phone:"+1 555 010 0100"'
tg personal search messages 'email:"ana@example.com"'
tg personal search messages 'domain:example.com'
```

`phone:` находит `+1 555 010 0100` и `+1 (555) 010-0100` одинаково; без `+` распознаются только российские номера. `domain:` находит все ссылки и адреса этого сайта. Упоминания ищутся по правилам, без модели. Отклонённое упоминание остаётся отклонённым.

## Картинки [#картинки]

Картинки ищутся двумя способами. Выбирайте по тому, что вы помните.

### По окружению картинки [#по-окружению-картинки]

Вы помните, о чём говорили, когда пришло фото. `conversations embed` делает для каждого фото кусок текста: подпись, до 3 сообщений до и после него в пределах 10 минут, название чата и отправитель. Поиск по смыслу затем находит сообщение с фото на любом языке.

```sh
tg personal models text download e5-small
tg personal conversations build --chat "Book club"
tg personal conversations embed --chat "Book club"
tg personal search conversations "photos from the trip" --chat "Book club"
```

Фото без подписи и без сообщений рядом куска не получает. Чтобы найти его, используйте следующий способ. О поиске по смыслу вообще: [Поиск по теме](/llms.mdx/docs/ru/tg/topic-search/content.md).

### По тому, что на картинке [#по-тому-что-на-картинке]

Вы помните, как выглядит картинка. Это выключено, пока вы не включите, и включается для одного профиля. Функция есть в последних релизах `tg` и `max`; проверьте свою версию командой `images --help`. По порядку:

1. `config set picture_search true`
2. `images models download clip-b32`
3. `images embed --chat "Book club" --limit 100`
4. Ищите словами, например `search messages "dog on a beach"`

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

* Модель: CLIP ViT-B/32, около 155 МБ, скачивается один раз и общая для всех профилей.
* `images embed` скачивает каждую сохранённую картинку через мессенджер, по одной, и ничего не отмечает прочитанным. Он хранит короткий список чисел (вектор) и хеш картинки, затем удаляет файл. Картинка не читается дважды. Запустите команду снова, чтобы продолжить.
* Поиск сообщений по словам затем добавляет список `pictures` рядом с обычными результатами. Он сортируется отдельно и не меняет текстовые результаты. Слабые совпадения отбрасываются. При выключенной настройке списка нет. Если настройка включена, а модели нет, ответ содержит `picturesSkipped`.
* **Пишите запрос по-английски.** Модель знает только английский. Ваш агент сначала переводит вопрос: «чек из магазина» превращается в "a shop receipt".

Картинки не покидают ваш компьютер.

## Чем различаются инструменты [#чем-различаются-инструменты]

| Инструмент | Сообщения | Файлы | Голосовые | Картинки |
| --- | --- | --- | --- | --- |
| `tg` | Да | Да | Расшифровка Telegram или локальная модель | По окружению и по содержимому |
| `max` | Да | Да | Только локальная модель | По окружению и по содержимому |
| `memo` | Ещё почта и заметки, через `search all` | Папки заметок: текст, таблицы, PDF, Word, презентации | Нет | Нет |
| `drive` | Нет | Docs, загруженный текст, Sheets, PDF, Word, Excel, CSV | Нет | По содержимому, изображения до 25 МБ |

Drive оставляет сканы PDF, Slides, аудио и видео только по имени: слово из имени файла их находит, а в результате указана причина, почему текста нет. Подробнее: [поиск в Drive](/llms.mdx/docs/ru/drive/search/content.md), [заметки Memo](/llms.mdx/docs/ru/memo/notes/content.md), [поиск в Telegram](/llms.mdx/docs/ru/tg/search/content.md), [поиск в MAX](/llms.mdx/docs/ru/max/search/content.md).

## Ограничения [#ограничения]

* Файл больше 50 МиБ не читается как текст. Измените это через `MESSAGING_ATTACHMENT_MAX_MIB`.
* Из одного файла читается не больше 2 000 000 символов текста.
* Архивы Office (`.odt`, `.ods`, `.xlsx`, `.pptx`, `.epub`) ограничены 1000 частями и 50 МиБ после распаковки. Файл сверх лимита помечается как слишком большой.
* Сканы PDF для сервиса моделей: 20 страниц на документ.
* Поиск по содержимому картинок понимает только английский.
* Memo хранит не больше 200 000 символов каждого файла заметок или вложения письма.
* Слова голосового можно найти только после расшифровки. Содержимое картинки можно найти только после того, как для неё создан вектор.

## Проверьте результат [#проверьте-результат]

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

Дальше: [Поиск](/llms.mdx/docs/ru/search/content.md) для обычных запросов или язык запросов для [Telegram](/llms.mdx/docs/ru/tg/query-language/content.md) и [MAX](/llms.mdx/docs/ru/max/query-language/content.md).
