Markdown简单教程

一级标题

二级标题

三级标题

四级标题

加粗

删除

高亮

代码块
chmod 777 filename.sh

创建引用

  • 无序列表
  1. 有序列表1
  2. 有序列表2

点击展开/折叠 这里是折叠内容,可以放文字、列表、图片、代码块等。

<details>
<summary>点击展开/折叠</summary>

	这里是折叠内容,可以放文字、列表、图片、代码块等。

</details>

读《高效能人士的七个习惯》

书籍信息:《高效能人士的七个习惯》

  • 作者:史蒂芬·柯维 (Stephen R. Covey)
  • 版本:30 周年纪念版
  • 类别:个人成长 / 时间管理 / 领导力
  • 核心框架:七个习惯 = 个人领域成功 + 公众领域成功 + 自我提升

🎯 成长三阶段

依赖 (Dependence) → 独立 (Independence) → 互赖 (Interdependence)
                  ↓                    ↓                      ↓
           你照顾我            我可以做到            我们可以做到
          (习惯 1-3)          (习惯 4-6)            (习惯 7)

📋 七个习惯详解

第一部分:个人领域的成功(从依赖到独立)

习惯一:积极主动 (Be Proactive)

个人愿景的原则

核心要点

  • ✅ 对自己的行为负责,不怪罪环境、条件或他人
  • ✅ 在刺激和反应之间,人有选择的自由
  • ✅ 专注于影响圈(能控制的),而非关注圈(不能控制的)
  • ✅ 使用积极语言:”我可以””我选择”vs”我不得不””我只能”

付诸行动

  • 识别自己的消极语言,转换为积极表达
  • 列出影响圈内的事项,优先投入精力
  • 面对问题时问:”我能做什么来改变现状?”

习惯二:以终为始 (Begin with the End in Mind)

自我领导的原则

核心要点

  • ✅ 先确定目标,再采取行动
  • ✅ 制定个人使命宣言(人生宪法)
  • ✅ 用想象力创造未来蓝图
  • ✅ 所有事物都经过两次创造:先在头脑中,再在现实中

付诸行动

  • 撰写个人使命宣言(价值观、目标、原则)
  • 想象自己的葬礼,希望别人如何评价你
  • 为每个角色设定长期目标

习惯三:要事第一 (Put First Things First)

自我管理的原则

核心要点

  • ✅ 优先做重要但不紧急的事(第二象限)
  • ✅ 围绕职责和目标管理时间
  • ✅ 信守承诺,兑现诺言
  • ✅ 勇于对不重要的事说”不”

时间管理矩阵

               紧急          不紧急
重要  Ⅰ危机处理    Ⅱ预防/规划/学习  ← 聚焦这里
         Ⅲ干扰/会议   Ⅳ琐事/浪费时间

付诸行动

  • 每周制定计划,优先安排第二象限活动
  • 学会授权,聚焦高价值工作
  • 定期回顾目标与实际的差距

第二部分:公众领域的成功(从独立到互赖)

习惯四:双赢思维 (Think Win-Win)

人际领导的原则

核心要点

  • ✅ 寻求互惠互利的解决方案
  • 知足心态,相信资源充足
  • ✅ 不把自己的成功建立在他人失败之上
  • ✅ 六种思维模式:双赢、赢输、输赢、输输、赢、双赢/好聚好散

付诸行动

  • 在冲突中问:”什么方案对双方都有利?”
  • 建立双赢协议(期望、资源、责任、后果)
  • 培养富足心态,欣赏他人成功

习惯五:知彼解己 (Seek First to Understand, Then to Be Understood)

移情沟通的原则

核心要点

  • 先理解别人,再争取被理解
  • ✅ 换位思考,认真倾听
  • ✅ 建立信任的情感银行账户
  • ✅ 诊断在前,开处方在后

倾听层次

  1. 忽视(心不在焉)
  2. 假装听(嗯嗯啊啊)
  3. 选择性倾听(只听感兴趣的)
  4. 专注倾听(听内容)
  5. 移情倾听(听情感 + 内容)← 最高境界

付诸行动

  • 对话时先复述对方的观点和感受
  • 不急于给建议,先充分理解
  • 记录他人的重要信息,建立情感账户

习惯六:统合综效 (Synergize)

创造性合作的原则

核心要点

  • 整体大于部分之和(1+1>2)
  • ✅ 尊重差异,寻求第三条路
  • ✅ 协作增效,化分歧为创意
  • ✅ 不是妥协(1+1=1.5),而是创造更好的方案

付诸行动

  • 遇到分歧时问:”有没有比我们各自想法都好的方案?”
  • 欣赏不同观点,视为学习机会
  • 在团队中鼓励多元化思考

第三部分:自我提升和完善

习惯七:不断更新 (Sharpen the Saw)

平衡的自我提升原则

核心要点

  • ✅ 四个层面持续更新:
    • 身体:运动、营养、压力管理
    • 心智:阅读、学习、写作
    • 情感:人际关系、同理心、内在安全感
    • 精神:价值观、目标、冥想
  • ✅ 持续改进,精益求精
  • ✅ 磨刀不误砍柴工

付诸行动

  • 每周为四个层面各安排一项更新活动
  • 建立个人更新计划(日/周/月)
  • 定期回顾和调整

🔑 核心概念

由内而外 (Inside-Out)

  • 改变从自己开始,而非改变他人或环境
  • 个人胜利是公众胜利的基础
  • 品格(品德)> 技巧(个人魅力)

原则中心 (Principle-Centered)

  • 以不变的自然法则为指南针
  • 原则:公平、诚信、尊严、服务、卓越
  • 区别于价值观(主观)和情境(变化)

情感银行账户 (Emotional Bank Account)

  • 存款:礼貌、诚实、守信、理解、道歉
  • 取款:无礼、失信、威逼、傲慢、抱怨
  • 余额高 = 信任高 = 沟通成本低

农场法则 (The Farm System)

  • 春种秋收,没有捷径
  • 自然法则不可违背
  • 短期可投机,长期必还债

📊 架构图

                              不断更新 (习惯七)
                                         ↑
         ←────────────┼─────────→
         ↓                                                         ↓
    个人领域成功                                      公众领域成功
    (独立)                                                    (互赖)
    ┌─────────────┐                ┌─────────────┐
    │ 积极主动 ①            │                 │ 双赢思维 ④  │
    │ 以终为始 ②            │    →→      │ 知彼解己 ⑤  │
    │ 要事第一 ③            │                │ 统合综效 ⑥  │
    └─────────────┘                └─────────────┘

💡 实践建议

个人层面

  • 撰写个人使命宣言
  • 每周制定计划(聚焦第二象限)
  • 记录情感银行账户(存款/取款)
  • 每日反思:今天是否积极主动?

团队层面

  • 建立双赢协议
  • 练习移情倾听
  • 寻求第三条路(统合综效)
  • 定期问责会议

组织层面

  • 以原则为中心建立文化
  • 培训七个习惯框架
  • 建立持续改进机制

QMD Search 详解

📋 什么是 QMD Search?

QMD (Query Markdown Document) 是一个基于 RAG (Retrieval-Augmented Generation) 的智能文档查询系统,专为 Markdown 文档库设计。

核心定位

  • 📚 Obsidian/Markdown 文档的语义搜索引擎
  • 🔍 支持关键词匹配 + 语义理解的混合检索
  • 🧠 可选 LLM 增强(Query Expansion + Reranking)
  • 🚀 本地运行,数据完全私有

🏗️ 核心架构

┌─────────────────────────────────────────────────────────┐
│                                                   QMD Search 系统                                                         │
├─────────────────────────────────────────────────────────┤
│  ┌─────────────┐    ┌──────────────┐    ┌────────────┐                   │
│  │  文档索引层            │    │   检索引擎                 │    │  LLM 增强层         │                   │
│  │  - Markdown         │    │  - BM25 FTS5           │    │ - Query                │                  │
│  │  - 分块                   │─▶│  - 向量检索              │─▶│  Expansion         │                   │
│  │  - Embedding│     │      |   - RRF 融合   │          │ - Rerank                   │                   │
│  └─────────────┘    └──────────────┘    └────────────┘                   │
│                          │                                                                                                          │
│                          ▼                                                                                                          │
│                  ┌──────────────┐                                                                              │
│                  │  SQLite 数据库           │                                                                             │
│                  │  - FTS5 全文索引        │                                                                             │
│                  │  - sqlite-vec              │                                                                              │
│                  └──────────────┘                                                                              │
└─────────────────────────────────────────────────────────┘

🔬 工作原理

1️⃣ 文档索引流程

用户添加文档
    │
    ▼
读取 Markdown 文件
    │
    ├──▶ 提取元数据(标题、标签、创建时间)
    │
    ├──▶ 文档分块(Chunking)
    │     - 按段落/标题分割
    │     - 保留上下文继承关系
    │
    ├──▶ 生成 Embedding 向量
    │     - 使用 Sentence Transformers
    │     - 默认模型:all-MiniLM-L6-v2
    │
    └──▶ 存储到数据库
          - 原文 → SQLite FTS5(全文索引)
          - 向量 → sqlite-vec(向量索引)
          - 元数据 → 关系表

2️⃣ 混合检索流程(Hybrid Search)

用户查询:"如何在 Obsidian 中配置同步?"
    │
    ├─────────────────────┬─────────────────────┐
    │                     │                     │
    ▼                     ▼                     ▼
BM25 全文检索        向量语义检索          LLM Query Expansion
(关键词匹配)        (语义相似度)          (可选,扩展查询)
    │                     │                     │
    │ 返回 Top 20         │ 返回 Top 20         │ 生成 3-5 个变体
    │                     │                     │
    └─────────────────────┴─────────────────────┘
                          │
                          ▼
              Reciprocal Rank Fusion (RRF)
              融合两个结果列表
                          │
                          ▼
              Position-Aware Blending
              根据位置调整最终分数
                          │
                          ▼
              LLM Rerank(可选)
              使用 LLM 重新排序 Top 40
                          │
                          ▼
              返回最终 Top 10 结果

🎯 核心算法详解

1. BM25 全文检索

技术栈:SQLite FTS5

-- 查询示例
SELECT 
    d.title,
    d.path,
    bm25(documents_fts, 10.0, 1.0) as bm25_score
FROM documents_fts f
JOIN documents d ON d.id = f.rowid
WHERE documents_fts MATCH 'Obsidian 同步'
ORDER BY bm25_score ASC  -- BM25 分数越低越好(负数)

特点

  • ✅ 精确匹配关键词
  • ✅ 支持布尔逻辑(AND、OR、短语)
  • ✅ 速度快,适合精确查询
  • ❌ 无法理解语义(”同步” ≠ “sync”)

2. 向量语义检索

技术栈:sqlite-vec + Sentence Transformers

# 生成查询向量
query_embedding = model.encode("如何在 Obsidian 中配置同步?")

# 向量相似度搜索(余弦相似度)
SELECT 
    d.title,
    d.path,
    vec_distance_cosine(query_vec, embedding) as similarity
FROM documents d
ORDER BY similarity DESC
LIMIT 20

特点

  • ✅ 理解语义(”同步” ≈ “sync” ≈ “备份”)
  • ✅ 支持跨语言匹配
  • ✅ 能找到相关但关键词不同的文档
  • ❌ 可能遗漏精确匹配

3. RRF (Reciprocal Rank Fusion)

目的:融合 BM25 和向量检索的结果

公式

RRF Score = Σ (1 / (k + rank_i))

其中:
- rank_i = 文档在第 i 个结果列表中的排名
- k = 60(经验值,防止分母过小)

示例

文档 A: BM25 排名 3, 向量排名 5
RRF Score = 1/(60+3) + 1/(60+5) = 0.0159 + 0.0154 = 0.0313

文档 B: BM25 排名 1, 向量排名 15
RRF Score = 1/(60+1) + 1/(60+15) = 0.0164 + 0.0133 = 0.0297

→ 文档 A 排名更高(在两个列表中都表现稳定)

优势

  • ✅ 无需归一化不同分数
  • ✅ 平衡两种检索方式
  • ✅ 对异常值不敏感

4. LLM 增强(可选)

Query Expansion(查询扩展)

# 原始查询
query = "Obsidian 同步配置"

# LLM 生成的变体
expanded_queries = [
    "Obsidian 如何设置自动同步",
    "Obsidian sync configuration",
    "Obsidian 多设备数据同步方法",
    "Obsidian 云端备份设置"
]

# 对每个变体执行检索,合并结果

触发条件

  • 初始检索结果分数较低(< 0.85)
  • 结果分布分散(无明显高分文档)

Rerank(重排序)

# 从混合检索中获取 Top 40 候选
candidates = hybrid_search(query, limit=40)

# 使用 LLM 评估相关性
reranked = llm.rerank(query, candidates)

# 返回 Top 10
return reranked[:10]

常用模型

  • Cohere Rerank
  • BGE Reranker
  • 自定义 LLM(GPT-4、Claude 等)

💻 使用方法

安装

# 使用 pipx 安装(推荐,隔离环境)
pipx install qmd

# 或从源码安装
pip install -e .

基本配置

# 1. 添加文档集合(Collection)
qmd add obsidian-vault --path ~/opt/Obsidian_vault --pattern "*.md"

# 2. 更新索引
qmd update

# 3. 查看状态
qmd status

搜索命令

# 基础搜索
qmd search "如何在 Obsidian 中配置同步"

# 限定集合
qmd search "同步配置" --collection obsidian-vault

# 指定结果数量
qmd search "同步" --limit 5

# 显示完整文档内容
qmd search "同步" --full

# 显示行号
qmd search "同步" --line-numbers

# 输出为 JSON
qmd search "同步" --format json

# 输出为 Markdown
qmd search "同步" --format md

深度搜索(Hybrid + Rerank)

# 使用 query 命令执行深度搜索
qmd query "如何在 Obsidian 中配置同步"

# 等价于
qmd search "如何在 Obsidian 中配置同步" --full --rerank

管理 Collections

# 列出所有集合
qmd list
qmd ls

# 重命名集合
qmd collection rename old-name new-name

# 删除集合
qmd remove collection-name

# 清理数据库(删除孤立向量)
qmd cleanup

文件监听(自动更新索引)

# 启动监听模式
qmd watch

# 监听特定集合
qmd watch --collection obsidian-vault

功能

  • 📝 检测文件新增/修改/删除
  • 🔄 自动更新索引
  • 🚀 实时生效,无需手动 qmd update

⚡ 高效使用技巧

1. 优化查询语句

# ✅ 好的查询
qmd search "Obsidian 同步 配置 多设备"  # 关键词明确
qmd search "如何设置自动备份"           # 自然语言

# ❌ 避免过于宽泛
qmd search "同步"                       # 太短,结果过多
qmd search "配置"                       # 缺少上下文

2. 使用 Collection 过滤

# 工作文档
qmd search "项目规范" -c work-notes

# 个人笔记
qmd search "读书笔记" -c personal

# 技术文档
qmd search "API 设计" -c tech-docs

优势

  • 🎯 缩小搜索范围
  • ⚡ 提升搜索速度
  • 📊 结果更精准

3. 利用标签和元数据

在 Markdown 中使用标准 Frontmatter:

---
created: 2026-04-15
tags: [obsidian, 同步,配置]
category: 技术文档
---

# 文档标题

搜索时

qmd search "tags:obsidian 同步"
qmd search "category:技术文档 配置"

4. 组合使用 BM25 和语义搜索

# 精确匹配优先
qmd search "npm install 命令" --format files

# 语义理解优先
qmd query "怎么安装 Node.js 包"  # 使用 LLM 增强

5. 输出格式选择

# 快速浏览(默认 CLI)
qmd search "同步"

# 获取文件列表(用于脚本)
qmd search "同步" --format files

# 导入到其他工具
qmd search "同步" --format json | jq '.[].file'

# 生成报告
qmd search "同步" --format md > 搜索结果.md

6. 定期维护

# 每周更新索引
qmd update

# 每月清理数据库
qmd cleanup

# 查看索引状态
qmd status

🔧 高级配置

自定义 Embedding 模型

# 编辑配置文件 ~/.config/qmd/config.yaml
embedding:
  model: "BAAI/bge-small-zh-v1.5"  # 中文优化
  dimension: 512

推荐模型

  • 英文:all-MiniLM-L6-v2(快)、bge-large-en(准)
  • 中文:bge-small-zh-v1.5text2vec-base-chinese

调整分块策略

# config.yaml
chunking:
  max_length: 512      # 最大 chunk 长度
  overlap: 50          # 重叠字符数
  by_paragraph: true   # 按段落分割

启用 LLM Rerank

# config.yaml
llm:
  backend: "ollama"
  model: "bge-reranker"
  rerank_top_k: 10

📊 性能优化建议

场景建议
文档库 < 1000 篇默认配置即可
文档库 > 5000 篇使用 --collection 过滤
需要精确匹配优先使用 qmd search
需要语义理解使用 qmd query(带 Rerank)
实时性要求高启用 qmd watch 监听
批量处理使用 --format json 导出

🆚 与其他工具对比

工具优势劣势适用场景
QMD本地运行、支持中文、混合检索需要索引时间Obsidian/Markdown 文档库
Obsidian 内置搜索无需配置、实时仅关键词匹配小型笔记库
Elasticsearch分布式、高性能配置复杂、资源占用高企业级搜索
Algolia云端、开箱即用收费、数据外传SaaS 应用

💡 最佳实践

  1. 定期更新索引 – 设置 cron 任务每天更新
  2. 使用 Collection 分类 – 按主题/项目分离文档
  3. 启用文件监听 – 写作时自动索引
  4. 混合使用 search 和 query – 根据需求选择
  5. 优化 Frontmatter – 添加标签和元数据提升检索精度