Пошук — це [[Вбудовані додатки|вбудований додаток]], який допомагає знаходити дані у вашому сховищі 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]- Пояснення пошукового терміна
> Якщо вам потрібно розібратися зі складним пошуковим терміном, натисніть **Explain search term** у Пошуку для отримання пояснення вашого пошукового терміна.
## Оператори пошуку
Оператори пошуку дозволяють точніше налаштовувати пошукові терміни для ще більшого звуження результатів.
Деякі оператори навіть дозволяють додавати вкладений пошуковий термін у дужках, наприклад: `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}/` повертає файли з датою у шляху файлу.
Для отримання додаткової інформації про написання регулярних виразів зверніться до [практичного посібника з регулярних виразів FreeCodeCamp](https://www.freecodecamp.org/news/practical-regex-guide-with-real-life-examples/) або [документації Mozilla щодо регулярних виразів](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions).
> [!info]+ Регулярні вирази у стилі JavaScript
> Регулярні вирази мають різні діалекти, які можуть виглядати по-різному. Obsidian використовує регулярні вирази у стилі JavaScript.
## Налаштування параметрів пошуку
Щоб налаштувати Пошук, виберіть **Параметри пошуку** ![[lucide-sliders-horizontal.svg#icon]] у правій частині рядка пошуку, щоб побачити перемикачі.
| Налаштування | Опис |
|--------------------------|-----------------------------------------------------------------------------|
| **Explain search term** | Розбирає пошуковий термін та пояснює його звичайним текстом. |
| **Згорнути результати** | Перемикає відображення контексту пошуку. |
| **Розгорнути контекст** | Розширює результат пошуку, показуючи більше тексту навколо збігу. |
## Вбудовування результатів пошуку в нотатку
Щоб вбудувати результати пошуку в нотатку, додайте блок коду `query`:
````
```query
embed OR search
```
````
[[Вступ до Obsidian Publish|Obsidian Publish]] не підтримує вбудовані [[Обмеження Publish#Пошук|результати пошуку]]. Щоб побачити живий приклад відображення, використайте наведений вище блок коду у своєму сховищі.
![[search-query-rendered.png]]