## ภาคที่ 4: การควบคุมคำค้นหาอย่างเชี่ยวชาญ
### ไวยากรณ์คำค้นหาและตัวดำเนินการ
NoteRich รองรับไวยากรณ์คำค้นหาที่มีประสิทธิภาพสำหรับการค้นหาข้อมูลอย่างแม่นยำ
#### การค้นหาแบบพื้นฐาน
เพียงแค่พิมพ์คำค้นหาเพื่อค้นหาข้อมูลทั้งหมดที่มีการจัดเก็บไว้:
```
Quarterly marketing strategy
```
นี่คือการค้นหาที่รวมทั้งชื่อเรื่องและเนื้อหาทั้งหมด ผลลัพธ์จะถูกจัดลำดับตามความเกี่ยวข้อง
#### การค้นหาหลายคำด้วยสัญลักษณ์ OR
ใช้สัญลักษณ์ `|` เพื่อค้นหาคำหลายคำที่แตกต่างกัน:
```
Q4 planning | quarterly review | year-end summary
```
นี่คือการค้นหาที่ตรงกับคำใดคำหนึ่งที่ระบุไว้ ซึ่งเหมาะสำหรับการประชุมที่มีคำศัพท์ที่แตกต่างกัน
#### ระบบการให้คะแนนที่มีน้ำหนัก
NoteRich ใช้อัลกอริทึมการให้คะแนนที่ซับซ้อน:
```
Match Type | Weight | Description
--------------------|--------|-------------------------------------
Precise (title_raw) | 1.0 | การค้นหาแบบตรงกับชื่อเรื่องโดยแม่นยำ
Fuzzy (title) | 0.8 | การค้นหาแบบแบ่งส่วนตามคำที่แยกออกมาในเนื้อหา
Fuzzy (content) | 0.8 | การค้นหาแบบแบ่งส่วนตามเนื้อหา
```
ผลลัพธ์จะถูกจัดลำดับตาม:
1. **ความสำคัญของประเภทการค้นหา**: การค้นหาแบบตรงกับชื่อเรื่องมีคะแนนสูงกว่าการค้นหาแบบแบ่งส่วน
2. **คะแนนรวม**: การค้นหาหลายคำจะเพิ่มคะแนน
3. **การครอบคลุมของคำค้นหาย่อย**: บันทึกที่ตรงกับคำค้นหาย่อยจะมีคะแนนสูงกว่า
### ตัวอย่างการค้นหาในสถานการณ์จริง
#### ตัวอย่างที่ 1: การค้นหาบันทึกการประชุม
```javascript
// คำค้นหา
"team standup | daily sync | morning meeting"
// จะค้นหาบันทึกที่มีคำเหล่านี้อยู่ด้วยกัน
// โดยให้ความสำคัญกับการค้นหาชื่อเรื่องโดยแม่นยำ
```
#### ตัวอย่างที่ 2: การค้นหาเอกสารทางเทคนิค
```javascript
// คำค้นหา
"API endpoint authentication"
// จะค้นหาบันทึกที่มีคำว่า "API" และ "endpoint" และ "authentication"
// โดยให้คำว่า "API" ถูกค้นหาเป็นคำเดียว
// และสามารถค้นหาได้ทั้งแบบ camelCase และแบบที่มีตัวอักษรแยกกัน
```
#### ตัวอย่างที่ 3: การค้นหาในเอกสารหลายภาษา
```javascript
// คำค้นหา (รวมภาษาอังกฤษและจีน)
"project roadmap 项目规划"
// จะค้นหาในทั้งสองภาษาได้พร้อมกัน
```
### ตัวช่วยในการค้นหาในเอกสารยาว
หนึ่งในคุณสมบัติที่โดดเด่นของ NoteRich คือความสามารถในการจัดการเอกสารยาวได้อย่างราบรื่น ไม่ว่าคุณจะทำงานกับเอกสารข้อกำหนดทางเทคนิค บทความวิจัย หรือเอกสารโครงการที่ละเอียด คุณสามารถค้นหาข้อมูลที่ต้องการได้อย่างง่ายดาย
#### วิธีการค้นหาในเอกสาร
เมื่อคุณทำการค้นหา NoteRich จะไม่เพียงแค่แสดงเอกสารที่ตรงกับคำค้นหาเท่านั้น แต่ยังให้การค้นหาแบบ **ตรงกับเนื้อหาเอกสาร** ด้วย:
```mermaid
sequenceDiagram
participant User
participant SearchEngine
participant DocumentIndex
participant Viewer
User->>SearchEngine: เขียนคำค้นหา
SearchEngine->>DocumentIndex: ค้นหาในทุก workspaces
DocumentIndex-->>SearchEngine: 返回เอกสารที่ตรงกับคำค้นหา + ตำแหน่งของข้อมูล
SearchEngine->>User: แสดงผลลัพธ์พร้อมจำนวนการค้นหา
User->>User: คลิกที่ผลลัพธ์
SearchEngine->>Viewer: เปิดเอกสารที่ตำแหน่งแรก
Viewer->>User: แสดงตัวควบคุมการค้นหา
User->>Viewer: เดินทางระหว่างผลลัพธ์ (Next/Previous)
Viewer->>User: แสดงตัวบ่งชี้ตำแหน่งของข้อมูล (เช่น "3 of 12")
```
#### คุณสมบัติสำคัญสำหรับเอกสารยาว
1. **การแสดงจำนวนการค้นหา**: ผลลัพธ์แต่ละรายการจะแสดงจำนวนการค้นหาในเอกสารนั้น (เช่น "Annual Report 2024 · 15 matches") ช่วยให้คุณรู้ว่าอนุกรมใดมีเนื้อหาที่เกี่ยวข้องมากที่สุด
2. **การเปิดดูเอกสารทันที**: การคลิกที่ผลลัพธ์จะเปิดเอกสารและเลื่อนไปที่ข้อมูลแรกที่ตรงกับคำค้นหา โดยข้อความที่ตรงกับคำค้นหาจะถูกแสดงให้เห็นทันที
3. **ตัวควบคุมการค้นหา**: ใช้คีย์ล็อกหรือปุ่มหน้าจอเพื่อสลับระหว่างผลลัพธ์ทั้งหมด:
- `F3` หรือ `Cmd+G`: ผลลัพธ์ถัดไป
- `Shift+F3` หรือ `Shift+Cmd+G`: ผลลัพธ์ก่อนหน้า
- ตัวบ่งชี้ที่มองเห็นได้แสดงตำแหน่งปัจจุบันของคุณ (เช่น "Match 7 of 23")
4. **การเน้นข้อความที่ตรงกับคำค้นหา**: ทุกตัวอย่างของคำค้นหาจะถูกเน้นให้เห็นพร้อมกัน ช่วยให้คุณเห็นภาพรวมของการกระจายตัวของข้อมูลในเอกสารได้อย่างชัดเจน
5. **การรักษาเนื้อหาโดยรอบ**: เมื่อคุณสลับระหว่างผลลัพธ์ เนื้อหาโดยรอบจะยังคงเห็นได้ ช่วยให้คุณไม่หลงทางในการค้นหาในเอกสารที่มีเนื้อหามากมาย
#### ตัวอย่างในสถานการณ์จริง: การค้นหาเอกสารข้อกำหนดทางเทคนิค
สมมติว่าคุณมีเอกสารข้อกำหนดทางเทคนิคที่มีขนาด 50,000 ตัวอักษร คุณต้องการค้นหาคำว่า "authentication protocol" ทั้งหมด:
| ขั้นตอน | การดำเนินการ | ผลลัพธ์ |
|------|--------|--------|
| 1 | พิมพ์ `authentication protocol` ในช่องค้นหา | เอกสารข้อกำหนดทางเทคนิคจะปรากฏพร้อมกับ "8 matches" |
| 2 | คลิกที่ผลลัพธ์ที่ค้นพบ | เอกสารจะเปิดขึ้นและเลื่อนไปที่ข้อมูลแรกที่ตรงกับคำค้นหา |
| 3 | กด `F3` 7 ครั้ง | ตรวจสอบ 8 ตัวอย่างที่ตรงกับคำค้นหาเรียงลำดับ |
| 4 | ดูข้อความที่ถูกเน้น | ดูภาพรวมของการกระจายตัวของคำค้นหา |
| 5 | อ่านเนื้อหาโดยรอบ | เนื้อหาทั้งหมดจะถูกเก็บไว้ในแต่ละขั้นตอน |
คุณสมบัตินี้ช่วยเปลี่ยนเอกสารยาวให้กลายเป็นโครงสร้างข้อมูลที่สามารถเข้าถึงได้ง่าย โดยข้อมูลทุกอย่างอยู่ใกล้กับปากกาเพียงไม่กี่ครั้งเท่านั้น
#### เคล็ดลับสำหรับการค้นหาในเอกสารยาว
- **ใช้คำที่เฉพาะเจาะจง**: การใช้คำค้นหาที่ยาวเกินไปอาจทำให้เกิดการค้นหาที่ไม่ถูกต้องในเอกสารขนาดใหญ่
- **ตรวจสอบจำนวนการค้นหา**: จำนวนการค้นหาที่สูงอาจบ่งบอกถึงคำที่ใช้บ่อยเกินไป
- **รวมกับการกรอง workspaces**: ค้นหาใน workspaces ที่เฉพาะเจาะจงเพื่อจำกัดขอบเขตการค้นหา
- **ใช้ชื่อเรื่องที่ชัดเจน**: จัดรูปแบบหัวข้อของส่วนต่างๆ ให้ชัดเจนเพื่อการค้นหาที่แม่นยำ
---
## ภาคที่ 5: ประสิทธิภาพในขนาดใหญ่
### การจัดเก็บข้อมูลโดยใช้ IndexedDB
NoteRich ใช้ **IndexedDB** เพื่อจัดเก็บข้อมูลในระบบพื้นฐานที่มีประสิทธิภาพ ทำให้สามารถค้นหาได้ทันทีแม้ในเอกสารที่มีขนาดใหญ่
#### โครงสร้างฐานข้อมูล
แต่ละ workspaces มีฐานข้อมูล IndexedDB ของตัวเอง:
```
noterich_note_database_{workspaceId} → ข้อมูลเมตาดาต้าและเนื้อหาของบันทึก
noterich_search_index_{workspaceId} → เอกสารดัชนีการค้นหา
```
การแยกนี้ช่วยให้:
- **การสลับระหว่าง workspaces ได้อย่างรวดเร็ว**: ไม่มีการโหลดข้อมูลระหว่าง workspaces
- **การสำรองข้อมูลแบบอิสระ**: สามารถสำรอง workspaces ได้แยกกัน
- **การควบคุมสิทธิ์แบบเฉพาะเจาะจง**: การควบคุมการเข้าถึงข้อมูลแบบละเอียด
### การอัปเดตดัชนีแบบ incremental
แทนที่จะสร้างดัชนีการค้นหาใหม่ทุกครั้ง NoteRich ใช้การอัปเดตแบบ incremental ที่ฉลาด:
```mermaid
graph LR
A[บันทึกข้อมูล] --> B{ดัชนีมีอยู่หรือไม่?}
B -->|มี| C[เปรียบเทียบวันที่]
B -->|ไม่มี| D[สร้างดัชนีใหม่ทั้งหมด]
C -->|ใหม่กว่า| E[อัปเดตข้อมูลในดัชนี]
C -->|เก่ากว่า| F[ข้ามไป-ที่มีอยู่แล้ว]
E --> G[เก็บข้อมูลไว้ใน IndexedDB]
D --> G
F --> H[ดัชนีปัจจุบัน]
```
### ประสิทธิภาพในการทดสอบ
การทดสอบของเราแสดงให้เห็นถึงประสิทธิภาพที่ยอดเยี่ยมแม้ในขนาดใหญ่:
```echarts
{
"xAxis": {
"type": "category",
"data": ["1k Notes", "5k Notes", "10k Notes", "20k Notes", "50k Notes"],
"axisLabel": { "color": "#666", "rotate": 0 }
},
"yAxis": [
{
"type": "value",
"name": "จำนวนบันทึก",
"splitLine": { "lineStyle": { "color": "#f4f4f5" } },
"axisLabel": { "color": "#666" }
},
{
"type": "value",
"name": "ความล่าช้า (ms)",
"splitLine": { "show": false },
"axisLabel": { "color": "#666" }
}
],
"series": [
{
"name": "จำนวนบันทึก",
"data": [1000, 5000, 10000, 20000, 50000],
"type": "bar",
"itemStyle": { "color": "#eaeaea", "borderRadius": [4, 4, 0, 0] }
},
{
"name": "ความล่าช้าในการค้นหา",
"data": [8, 12, 15, 22, 35],
"type": "line",
"yAxisIndex": 1,
"smooth": true,
"lineStyle": { "color": "#000", "width": 3 },
"itemStyle": { "color": "#000" },
"symbol": "circle",
"symbolSize": 8
}
],
"grid": { "left": "10%", "right": "10%", "bottom": "15%" },
"legend": { "data": ["จำนวนบันทึก", "ความล่าช้าในการค้นหา"], "bottom": 0, "textStyle": { "color": "#666" } }
}
```
แม้จะมี **50,000 บันทึก** ก็ยังสามารถค้นหาข้อมูลได้ภายใน 40 วินาที ซึ่งเร็วกว่าการกระพริบตาเสียอีก
### ประสิทธิภาพด้านการใช้หน่วยความจำ
เครื่องมือการค้นหาใช้โครงสร้างข้อมูลที่ปรับปรุงแล้ว:
- **FlexSearch Document Index**: ผสมผสานฟิลด์หลายฟิลด์เข้าด้วยกันเพื่อสร้างดัชนีที่มีประสิทธิภาพ
- **Map of Notes Shared**: เก็บข้อมูลเมตาดาต้าของบันทึกไว้แบบ O(1)
- **การประมวลผลแบบ Batch**: อัปเดตดัชนีเป็นชุดเพื่อป้องกันการกระตุ้นหน้าจอ
- **การโหลดแบบ Lazy Loading**: อัปเดตดัชนีเมื่อมีการสลับระหว่าง workspaces
---
## ภาคที่ 6: วิธีการจัดการ workspaces ที่ดีที่สุด
### การสร้างโครงสร้าง workspaces ที่มีประสิทธิภาพ
#### รูปแบบที่แนะนำ
**รูปแบบที่ 1: การแบ่งตามหัวข้อ**
```
├── work-engineering
├── work-marketing
├── work-hr
└── personal
```
**รูปแบบที่ 2: การจัดระเบียบตามโครงการ**
```
├── project-alpha
├── project-beta
├── project-gamma
└── archive-2024
```
**รูปแบบที่ 3: การจัดระเบียบตามช่วงเวลา**
```
├── 2025-q1
├── 2025-q2
├── 2025-q3
└── 2025-q4
```
### เมื่อใดควรสร้าง workspaces ใหม่
ควรสร้าง workspaces ใหม่เมื่อ:
✅ **มีการแบ่งขอบเขตที่ชัดเจน**: งานโครงการ ทีม หรือหัวข้อต่างๆ
✅ **ต้องการการควบคุมการเข้าถึงที่แตกต่างกัน**: บันทึกบางบันทึกต้องการการแบ่งปันที่จำกัด
✅ **ฐานข้อมูลขยายใหญ่**: แบ่งออกเมื่อ workspaces ใดมีบันทึกมากกว่า 10,000 บันทึก
✅ **ความต้องการในการทำงานร่วมกันแตกต่างกัน**: ผู้ร่วมงานที่แตกต่างกันสำหรับหัวข้อต่างๆ
### เมื่อใดควรอยู่ใน workspaces เดียว
ควรเก็บบันทึกไว้ด้วยกันเมื่อ:
❌ **มีการเชื่อมโยงกันบ่อย**: บันทึกมักเชื่อมโยงกันอยู่เสมอ
❌ **ต้องการค้นหาในหัวข้อต่างๆ**: มักจะค้นหาในเนื้อหาทั้งหมด
❌ **ค่าใช้จ่ายในการตั้งค่าไม่คุ้มค่า**: สำหรับบันทึกที่มีน้อยกว่า <1,000 บันทึก
พร้อมที่จะเปลี่ยนเวิร์กโฟลว์ของคุณหรือยัง?
ศูนย์กลางการจดบันทึกส่วนตัวที่ขับเคลื่อนด้วย AI
ของคุณกำลังรออยู่
เข้าร่วมกับผู้ใช้หลายพันคนที่ไว้วางใจ NoteRich สำหรับการจดบันทึกส่วนตัวและทรงพลัง ลองใช้ในเบราว์เซอร์ของคุณ — ไม่ต้องติดตั้ง ไม่ต้องใช้บัตรเครดิต บันทึกย่อของคุณจะไม่เคยออกจากอุปกรณ์ของคุณ
ไม่ต้องใช้บัตรเครดิต
ทำงานในเบราว์เซอร์
บันทึกย่อในเครื่อง 100%
ทรัพยากรและคู่มือ
สำรวจบทความเชิงลึกของเราเกี่ยวกับการจดบันทึกโดยเน้นเครื่องท้องถิ่น สถาปัตยกรรมความเป็นส่วนตัว และเวิร์กโฟลว์การเพิ่มผลผลิตขั้นสูง
- เปลี่ยนบันทึกย่อของคุณให้เป็นหน่วยความจำ AI ภายใน NoteRich
- เปลี่ยนข้อความเป็นอินโฟกราฟิกภาพด้วย NoteRich AI
- บทช่วยสอนพื้นที่ทำงานและการค้นหาขั้นสูงของ NoteRich
- Rich Text ของ NoteRich เทียบกับ Markdown วิธีสลับและใช้ทั้งคู่
- บทช่วยสอนการซิงค์ P2P ของ NoteRich ข้ามอุปกรณ์โดยไม่ต้องใช้คลาวด์
- บทช่วยสอน OCR ของ NoteRich สแกนบันทึกย่อกระดาษเป็นข้อความดิจิทัล
- อธิบายการเข้ารหัส AES-GCM แบบเน้นเครื่องท้องถิ่นของ NoteRich
- บทช่วยสอน RAG ฐานความรู้ในเครื่องของ NoteRich
- คู่มือสมการคณิตศาสตร์ LaTeX ของ NoteRich วิธีเขียนสูตร
- ทางลัดแป้นพิมพ์ NoteRich และเคล็ดลับการเพิ่มผลผลิต
- คุณสมบัติและประโยชน์ของ NoteRich สำหรับการจดบันทึกออนไลน์
- วิธีใช้ NoteRich Privacy AI เพื่อสรุปเอกสารอย่างเป็นส่วนตัว
- วิธีใช้ Mermaid.js สำหรับแผนผังงานใน NoteRich – บทช่วยสอนฉบับสมบูรณ์
- วิธีแทรกวิดีโอและไฟล์แนบใน NoteRich
- วิธีส่งออก PDF และ HTML โดยไม่มีลายน้ำใน NoteRich
- วิธีฝัง ECharts แบบโต้ตอบใน NoteRich