# wangshusen/searchengine architecture

> Architecture diagram of the GitHub repository wangshusen/searchengine, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/wangshusen/searchengine
- Repository: https://github.com/wangshusen/searchengine

## Overview

This repository is a Chinese-language search-engine technology course, not a runnable search service. Its principal learner workflow is to study search fundamentals and relevance, then progress through query processing, retrieval, ranking, and query recommendation. The README documents the latter topics but provides no separate source files for them, so they are represented as curriculum topics at README.md rather than as inferred implementations. The tree contains a book PDF and slide PDFs; their internal contents and any links from the book were not inspected.

Main entry points: [`README.md`](https://github.com/wangshusen/searchengine/blob/main/README.md) (Course Outline), [`SearchEngineBook.pdf`](https://github.com/wangshusen/searchengine/blob/main/SearchEngineBook.pdf) (Search Engine Book), [`Slides/01_Basics_01.pdf`](https://github.com/wangshusen/searchengine/blob/main/Slides/01_Basics_01.pdf) (Search Basics), [`Slides/01_Basics_02.pdf`](https://github.com/wangshusen/searchengine/blob/main/Slides/01_Basics_02.pdf) (User Satisfaction)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_fundamentals["Search Fundamentals"]
  node_course["Course Outline<br/>[README.md]"]
  node_book["Search Engine Book"]
  node_basics["Search Basics<br/>[01_Basics_01.pdf]"]
  node_satisfaction["User Satisfaction<br/>[01_Basics_02.pdf]"]
  node_metrics["Search Metrics<br/>[01_Basics_03.pdf]"]
  node_workflow["Search Workflow<br/>[01_Basics_04.pdf]"]
end

subgraph group_relevance["Relevance"]
  node_relevance_definition["Relevance Grades<br/>[02_Rel_01.pdf]"]
  node_relevance_metrics["Relevance Metrics<br/>[02_Rel_02.pdf]"]
  node_text_matching["Text Matching<br/>[02_Rel_03.pdf]"]
  node_bert_inference["BERT Inference<br/>[02_Rel_04.pdf]"]
  node_bert_training["BERT Training<br/>[02_Rel_05.pdf]"]
end

subgraph group_pipeline["Search Topics"]
  node_query_processing["Query Processing<br/>[README.md]"]
  node_retrieval["Retrieval<br/>[README.md]"]
  node_ranking["Ranking<br/>[README.md]"]
  node_suggestions["Query Suggestions<br/>[README.md]"]
end

node_learner(("Learner"))

node_learner -->|"studies"| node_course
node_course -->|"lists resource"| node_book
node_course -->|"links slides"| node_basics
node_course -->|"links slides"| node_satisfaction
node_course -->|"links slides"| node_metrics
node_course -->|"links slides"| node_workflow
node_course -->|"links slides"| node_relevance_definition
node_course -->|"links slides"| node_relevance_metrics
node_course -->|"links slides"| node_text_matching
node_course -->|"links slides"| node_bert_inference
node_course -->|"links slides"| node_bert_training
node_course -->|"covers topic"| node_query_processing
node_course -->|"covers topic"| node_retrieval
node_course -->|"covers topic"| node_ranking
node_course -->|"covers topic"| node_suggestions

click node_course "https://github.com/wangshusen/searchengine/blob/main/README.md"
click node_book "https://github.com/wangshusen/searchengine/blob/main/SearchEngineBook.pdf"
click node_basics "https://github.com/wangshusen/searchengine/blob/main/Slides/01_Basics_01.pdf"
click node_satisfaction "https://github.com/wangshusen/searchengine/blob/main/Slides/01_Basics_02.pdf"
click node_metrics "https://github.com/wangshusen/searchengine/blob/main/Slides/01_Basics_03.pdf"
click node_workflow "https://github.com/wangshusen/searchengine/blob/main/Slides/01_Basics_04.pdf"
click node_relevance_definition "https://github.com/wangshusen/searchengine/blob/main/Slides/02_Rel_01.pdf"
click node_relevance_metrics "https://github.com/wangshusen/searchengine/blob/main/Slides/02_Rel_02.pdf"
click node_text_matching "https://github.com/wangshusen/searchengine/blob/main/Slides/02_Rel_03.pdf"
click node_bert_inference "https://github.com/wangshusen/searchengine/blob/main/Slides/02_Rel_04.pdf"
click node_bert_training "https://github.com/wangshusen/searchengine/blob/main/Slides/02_Rel_05.pdf"
click node_query_processing "https://github.com/wangshusen/searchengine/blob/main/README.md"
click node_retrieval "https://github.com/wangshusen/searchengine/blob/main/README.md"
click node_ranking "https://github.com/wangshusen/searchengine/blob/main/README.md"
click node_suggestions "https://github.com/wangshusen/searchengine/blob/main/README.md"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_course,node_book,node_basics,node_satisfaction,node_metrics,node_workflow toneBlue
class node_relevance_definition,node_relevance_metrics,node_text_matching,node_bert_inference,node_bert_training toneAmber
class node_query_processing,node_retrieval,node_ranking,node_suggestions toneMint
class node_learner toneIndigo
```

## Components

### Search Fundamentals

- [Course Outline](https://github.com/wangshusen/searchengine/blob/main/README.md): `README.md`
- [Search Engine Book](https://github.com/wangshusen/searchengine/blob/main/SearchEngineBook.pdf): `SearchEngineBook.pdf`
- [Search Basics](https://github.com/wangshusen/searchengine/blob/main/Slides/01_Basics_01.pdf): `Slides/01_Basics_01.pdf`
- [User Satisfaction](https://github.com/wangshusen/searchengine/blob/main/Slides/01_Basics_02.pdf): `Slides/01_Basics_02.pdf`
- [Search Metrics](https://github.com/wangshusen/searchengine/blob/main/Slides/01_Basics_03.pdf): `Slides/01_Basics_03.pdf`
- [Search Workflow](https://github.com/wangshusen/searchengine/blob/main/Slides/01_Basics_04.pdf): `Slides/01_Basics_04.pdf`

### Relevance

- [Relevance Grades](https://github.com/wangshusen/searchengine/blob/main/Slides/02_Rel_01.pdf): `Slides/02_Rel_01.pdf`
- [Relevance Metrics](https://github.com/wangshusen/searchengine/blob/main/Slides/02_Rel_02.pdf): `Slides/02_Rel_02.pdf`
- [Text Matching](https://github.com/wangshusen/searchengine/blob/main/Slides/02_Rel_03.pdf): `Slides/02_Rel_03.pdf`
- [BERT Inference](https://github.com/wangshusen/searchengine/blob/main/Slides/02_Rel_04.pdf): `Slides/02_Rel_04.pdf`
- [BERT Training](https://github.com/wangshusen/searchengine/blob/main/Slides/02_Rel_05.pdf): `Slides/02_Rel_05.pdf`

### Search Topics

- [Query Processing](https://github.com/wangshusen/searchengine/blob/main/README.md): `README.md`
- [Retrieval](https://github.com/wangshusen/searchengine/blob/main/README.md): `README.md`
- [Ranking](https://github.com/wangshusen/searchengine/blob/main/README.md): `README.md`
- [Query Suggestions](https://github.com/wangshusen/searchengine/blob/main/README.md): `README.md`

### Other components

- **Learner**

## Connections

- Learner → Course Outline: studies
- Course Outline → Search Engine Book: lists resource
- Course Outline → Search Basics: links slides
- Course Outline → User Satisfaction: links slides
- Course Outline → Search Metrics: links slides
- Course Outline → Search Workflow: links slides
- Course Outline → Relevance Grades: links slides
- Course Outline → Relevance Metrics: links slides
- Course Outline → Text Matching: links slides
- Course Outline → BERT Inference: links slides
- Course Outline → BERT Training: links slides
- Course Outline → Query Processing: covers topic
- Course Outline → Retrieval: covers topic
- Course Outline → Ranking: covers topic
- Course Outline → Query Suggestions: covers topic
