Поиск — это [[Основные плагины|основной плагин]], который помогает находить данные в вашем хранилище Obsidian с помощью поисковых запросов и операторов для сужения результатов. По умолчанию поиск доступен на левой боковой панели ![[lucide-search.svg#icon]]. Также можно открыть поиск, нажав `Ctrl+Shift+F` (Windows/Linux) или `Command+Shift+F` (macOS). - **Поиск выделенного текста**: если вы выделите текст в редакторе и откроете поиск с помощью сочетания клавиш, поиск покажет результаты для выделенного текста. - **Поиск по недавним запросам**: откройте поиск с пустым поисковым запросом, чтобы увидеть список недавних поисковых запросов. Нажмите на любой из них, чтобы использовать этот запрос снова. > [!info] Исключённые файлы и папки > Файлы, соответствующие шаблонам [[Настройки#Исключённые файлы и папки|Исключённых файлов и папок]], не будут отображаться в результатах поиска. ## Поисковые запросы Поисковый запрос — это слово или фраза, которую вы вводите в поле поиска. Умение правильно составлять поисковые запросы поможет быстро находить нужную информацию даже в больших хранилищах. Obsidian выполняет поиск только по содержимому заметок и холстов. > [!tip]- Поиск по путям и именам файлов > По умолчанию вы можете искать только по путям и именам файлов заметок и холстов. Чтобы найти путь или имя любого файла в хранилище, используйте оператор `path` или `file`. Каждое слово в поисковом запросе сопоставляется независимо в каждом файле. Чтобы найти точную фразу, заключите её в кавычки, например `"star wars"`. Чтобы искать текст в кавычках внутри точной фразы, можно _экранировать_ кавычки, добавив обратную косую черту (`\`) перед ними, например `"they said \"hello\" to each other"`. Вы можете управлять тем, возвращать ли файлы, содержащие _все_ слова из вашего запроса, или _любое_ из них: - `meeting work` возвращает файлы, содержащие и `meeting`, и `work`. - `meeting OR work` возвращает файлы, содержащие `meeting` или `work`. Вы даже можете комбинировать оба варианта в одном запросе. - `meeting work OR meetup personal` возвращает файлы о рабочих встречах и личных собраниях. Можно использовать скобки для управления приоритетом каждого выражения. - `meeting (work OR meetup) personal` возвращает файлы, содержащие `meeting`, `personal` и либо `work`, либо `meetup`. Чтобы исключить слово из результатов поиска, добавьте перед ним дефис (`-`): - `meeting -work` возвращает файлы, содержащие `meeting`, но не `work`. Можно исключить несколько выражений: - `meeting -work -meetup` возвращает файлы, содержащие `meeting`, но не `work` и не `meetup`. Можно исключить комбинацию выражений с помощью скобок: - `meeting -(work meetup)` возвращает файлы, содержащие `meeting`, но не _одновременно_ `work` и `meetup`. Для фильтрации результатов с помощью операторов меньше (`<`) и больше (`>`) заключите их в квадратные скобки (`[]`) или кавычки (`""`): - `meeting [duration:<5]` возвращает файлы, где присутствует meeting, а значение duration меньше 5. - `meeting [duration:>5]` возвращает файлы, где присутствует meeting, а значение duration больше 5. > [!tip]- Объяснение поискового запроса > Если вам нужно разобраться в сложном поисковом запросе, нажмите **Объяснить поисковый запрос** в поиске, чтобы получить объяснение вашего запроса. ## Операторы поиска Операторы поиска позволяют более точно формулировать поисковые запросы для дополнительной фильтрации результатов. Некоторые операторы позволяют добавлять вложенный поисковый запрос в скобках, например: `task:(call OR email)`. | Оператор поиска | Описание | | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `file:` | Поиск текста в имени файла. Соответствует любому файлу в хранилище.<p/>Пример: `file:.jpg` или `file:202209`. | | `path:` | Поиск текста в пути к файлу. Соответствует любому файлу в хранилище.<p/>Пример: `path:"Daily notes/2022-07"`. | | `content:` | Поиск текста в содержимом файла.<p/>Пример: `content:"happy cat"`. | | `match-case:` | Поиск с учётом регистра.<p/>Пример: `match-case:HappyCat`. | | `ignore-case:` | Поиск без учёта регистра.<p/>Пример: `ignore-case:ikea`. | | `tag:` | Поиск тега в файле.<p/>Пример: `tag:#work`.<p/>Имейте в виду, что поиск по `tag:#work` не вернёт результаты для `#myjob/work`.<br /><br />**Примечание**: поскольку `tag:` игнорирует совпадения в блоках кода и в содержимом, отличном от Markdown, он часто работает быстрее и точнее, чем обычный полнотекстовый поиск по `#work`. | | `line:` | Поиск файлов, содержащих хотя бы одну строку, соответствующую `x`.<p/>Пример: `line:(mix flour)`.<p/><br>**Примечание**: использование `-line` инвертирует поиск, то есть находит файлы, в которых ни одна строка не соответствует `x`. | | `block:` | Поиск совпадений в одном блоке.<p/>Пример: `block:(dog cat)`.<p/>**Примечание**: поскольку `block:` требует от поиска анализа Markdown-содержимого каждого файла, выполнение запроса может занять больше времени. | | `section:` | Поиск совпадений в одном разделе (текст между двумя заголовками).<p/>Пример: `section:(dog cat)`. | | `task:` | Поиск совпадений в [[Основной синтаксис форматирования#Списки задач\|задаче]] поблочно.<p/>Пример: `task:call`. | | `task-todo:` | Поиск совпадений в *невыполненной* [[Основной синтаксис форматирования#Списки задач\|задаче]] поблочно.<p/>Пример: `task-todo:call`. | | `task-done:` | Поиск совпадений в *выполненной* [[Основной синтаксис форматирования#Списки задач\|задаче]] поблочно.<p/>Пример: `task-done:call`. | ## Поиск по свойствам Вы можете использовать данные, хранящиеся в [[Свойства|свойствах]], в своих поисковых запросах. Используйте квадратные скобки вокруг имени свойства `[property]`, чтобы вернуть файлы с этим свойством: - `[aliases]` возвращает файлы, содержащие свойство `aliases` Используйте квадратные скобки и двоеточие `[property:value]`, чтобы вернуть файлы с определённым свойством и значением: - `[aliases:Name]` возвращает файлы, в которых значение свойства `aliases` равно `Name` Используйте `null` в качестве значения для поиска свойств без значения: - `[aliases:null]` возвращает файлы, в которых свойство `aliases` существует, но не имеет значения > [!info]+ Пустые значения > Оператор `null` работает, когда свойство пустое (например, `aliases: `), но не когда свойство содержит пустые кавычки (`""`) или пустые скобки (`[]`). И свойство, и значение допускают вложенные запросы, такие как скобки для группировки, оператор `OR`, двойные кавычки для точного совпадения и регулярные выражения. - `[status:Draft OR Published]` возвращает файлы, в которых значение свойства `status` равно `Draft` или `Published` ## Изменение учёта регистра По умолчанию поисковые запросы не учитывают регистр. Если вы хотите искать с точным учётом регистра, нажмите **Учитывать регистр** ![[obsidian-icon-upper-lowercase.svg#icon]] в строке поиска. Эту настройку можно переключать. Если значок **Учитывать регистр** подсвечен, это означает, что поиск выполняется с учётом регистра. ## Изменение порядка сортировки результатов 1. Введите [[#Поисковые запросы|поисковый запрос]]. 2. Под полем поиска нажмите на выпадающий список справа. 3. Выберите нужный порядок сортировки. По умолчанию используется «По имени файла (от А до Я)». Доступны следующие варианты: - По имени файла (от А до Я) - По имени файла (от Я до А) - По времени последнего изменения (от новых к старым) - По времени последнего изменения (от старых к новым) - По времени создания (от новых к старым) - По времени создания (от старых к новым) ## Копирование результатов поиска 1. Введите [[#Поисковые запросы|поисковый запрос]]. 2. Под полем поиска нажмите на значок с тремя точками рядом с количеством результатов. 3. Выберите **Скопировать результаты поиска**. ## Использование регулярных выражений Регулярное выражение — это набор символов, описывающих текстовый шаблон. Чтобы использовать регулярные выражения в поисковом запросе, заключите выражение в прямые косые черты (`/`). - `/\d{4}-\d{2}-\d{2}/` соответствует дате в формате ISO 8601, например 2022-01-01. Вы даже можете комбинировать регулярные выражения с операторами поиска: - `path:/\d{4}-\d{2}-\d{2}/` возвращает файлы, в пути которых содержится дата. Для получения дополнительной информации о написании регулярных выражений обратитесь к [практическому руководству по Regex](https://www.freecodecamp.org/news/practical-regex-guide-with-real-life-examples/) от FreeCodeCamp или к разделу [Регулярные выражения](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions) от Mozilla. > [!info]+ Регулярные выражения в формате JavaScript > Регулярные выражения бывают разных видов, которые могут отличаться друг от друга. Obsidian использует регулярные выражения в формате JavaScript. ## Настройка параметров поиска Для настройки поиска нажмите **Настройки поиска** ![[lucide-sliders-horizontal.svg#icon]] в правой части строки поиска, чтобы увидеть переключатели. | Настройка | Описание | |----------------------------------|-----------------------------------------------------------------------------| | **Объяснить поисковый запрос** | Разбирает поисковый запрос и объясняет его простым текстом. | | **Свернуть результаты** | Переключает отображение контекста поиска. | | **Развернуть контекст** | Расширяет результат поиска, показывая больше текста вокруг совпадения. | ## Встраивание результатов поиска в заметку Чтобы встроить результаты поиска в заметку, добавьте блок кода `query`: ```` ```query embed OR search ``` ```` [[Введение в Obsidian Publish|Obsidian Publish]] не поддерживает встроенные [[Ограничения Publish#Поиск|результаты поиска]]. Чтобы увидеть живой пример, используйте приведённый выше блок кода в вашем хранилище. ![[search-query-rendered.png]]