การค้นหาเป็น[[ปลั๊กอินหลัก|ปลั๊กอินหลัก]]ที่ช่วยให้คุณค้นหาข้อมูลในห้องนิรภัย Obsidian ของคุณโดยใช้คำค้นหาและตัวดำเนินการเพื่อจำกัดผลลัพธ์ให้แคบลง ตามค่าเริ่มต้น คุณสามารถค้นหาการค้นหาได้ในแถบด้านข้างซ้าย ![[lucide-search.svg#icon]] คุณยังสามารถเปิดการค้นหาโดยกด `Ctrl+Shift+F` (Windows/Linux) หรือ `Command+Shift+F` (macOS) - **ค้นหาข้อความที่เลือก**: หากคุณเลือกข้อความในเอดิเตอร์แล้วเปิดการค้นหาด้วยแป้นพิมพ์ลัด การค้นหาจะแสดงผลลัพธ์สำหรับข้อความที่เลือก - **ค้นหาคำค้นหาล่าสุด**: เปิดการค้นหาโดยไม่มีคำค้นหาเพื่อแสดงรายการคำค้นหาล่าสุด คลิกที่คำใดก็ได้เพื่อใช้คำค้นหานั้นอีกครั้ง > [!info] ไฟล์ที่ไม่รวม > ไฟล์ที่ตรงกับรูปแบบ[[การตั้งค่า#ไฟล์ที่ไม่รวม|ไฟล์ที่ไม่รวม]]ของคุณจะไม่ปรากฏในผลการค้นหา ## คำค้นหา คำค้นหาคือคำหรือวลีที่คุณป้อนในช่องค้นหา การเรียนรู้วิธีเขียนคำค้นหาอย่างมีประสิทธิภาพสามารถช่วยให้คุณค้นพบสิ่งที่ต้องการได้อย่างรวดเร็ว แม้ในห้องนิรภัยขนาดใหญ่ Obsidian จะค้นหาเฉพาะเนื้อหาของโน้ตและผืนผ้าใบเท่านั้น > [!tip]- การค้นหาเส้นทางและชื่อไฟล์ > ตามค่าเริ่มต้น คุณสามารถค้นหาเส้นทางและชื่อไฟล์ของโน้ตและผืนผ้าใบเท่านั้น หากต้องการค้นหาเส้นทางหรือชื่อไฟล์ของไฟล์ใดก็ได้ในห้องนิรภัย ให้ใช้ตัวดำเนินการ `path` หรือ `file` แต่ละคำในคำค้นหาจะถูกจับคู่แยกกันภายในแต่ละไฟล์ หากต้องการค้นหาวลีที่ตรงทั้งหมด ให้ใส่เครื่องหมายคำพูดล้อมรอบ เช่น `"star wars"` หากต้องการค้นหาข้อความที่มีเครื่องหมายคำพูดภายในวลีที่ตรงทั้งหมด คุณสามารถ _escape_ เครื่องหมายคำพูดโดยเพิ่มแบ็กสแลช (`\`) ไว้หน้าเครื่องหมายคำพูด เช่น `"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. เลือกลำดับการจัดเรียงที่คุณต้องการ ค่าเริ่มต้นคือ "เรียงตามชื่อไฟล์ (A ไป Z)" ตัวเลือกที่มีดังนี้: - เรียงตามชื่อไฟล์ (A ไป Z) - เรียงตามชื่อไฟล์ (Z ไป A) - เรียงตามเวลาที่แก้ไข (ใหม่ไปเก่า) - เรียงตามเวลาที่แก้ไข (เก่าไปใหม่) - เรียงตามเวลาที่สร้าง (ใหม่ไปเก่า) - เรียงตามเวลาที่สร้าง (เก่าไปใหม่) ## คัดลอกผลการค้นหา 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 หรือ [Regular expressions](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]]