جستجو یک [[افزونههای اصلی|افزونهٔ اصلی]] است که به شما کمک میکند با استفاده از عبارات جستجو و عملگرها، دادهها را در گاوصندوق Obsidian خود پیدا کنید و نتایج را محدود نمایید.
به طور پیشفرض، جستجو را میتوانید در نوار کناری چپ پیدا کنید ![[lucide-search.svg#icon]]. همچنین میتوانید جستجو را با فشردن `Ctrl+Shift+F` (ویندوز/لینوکس) یا `Command+Shift+F` (مک) باز کنید.
- **جستجوی متن انتخابشده**: اگر متنی را در ویرایشگر انتخاب کنید و جستجو را با میانبر صفحهکلید باز کنید، جستجو نتایج مربوط به متن انتخابشده را نمایش میدهد.
- **جستجوی عبارات جستجوی اخیر**: جستجو را با عبارت جستجوی خالی باز کنید تا عبارات جستجوی اخیر فهرست شوند. روی هر کدام کلیک کنید تا دوباره از آن عبارت جستجو استفاده شود.
> [!info] پروندههای مستثنا
> فایلهایی که با الگوهای [[تنظیمات#پروندههای مستثنا|پروندههای مستثنا]] شما مطابقت دارند، در نتایج جستجو ظاهر نخواهند شد.
## عبارات جستجو
عبارت جستجو کلمه یا عبارتی است که در فیلد جستجو وارد میکنید. یادگیری نحوه نوشتن مؤثر عبارات جستجو میتواند به شما کمک کند آنچه را که به دنبال آن هستید، حتی در گاوصندوقهای بزرگ، سریعاً پیدا کنید. Obsidian فقط محتوای یادداشتها و Canvasها را جستجو میکند.
> [!tip]- جستجوی مسیرها و نام فایلها
> به طور پیشفرض، فقط میتوانید مسیرها و نام فایلهای یادداشتها و Canvasها را جستجو کنید. برای جستجوی مسیر یا نام فایل هر فایلی در گاوصندوق، از عملگر `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]]