瀏覽代碼

add meilisearch

Niels Bohr 2 年之前
父節點
當前提交
e15d0a2a14
共有 2 個文件被更改,包括 91 次插入0 次删除
  1. 83 0
      content/middleware/meilisearch.md
  2. 8 0
      content/res/github_projects.md

+ 83 - 0
content/middleware/meilisearch.md

@@ -4,3 +4,86 @@ date: 2022-10-14T16:11:34+07:00
 draft: true
 ---
 
+# meilisearch 快速文檔
+
+
+## 術語
+
+- document 文檔是一個鍵值對對象,可以認為是 json 對象
+- index (相同格式的)文檔組成 index,索引必須有主鍵(primary key),不包含主鍵的 document 不能插入
+> 如果創建 index 時沒有設置 primary key,那麼會根據第一個插入的 document 來推導,規則是: 以不區分大小寫的方式找到以"id"結尾的字段
+定義為主鍵(如 ID, uid, user_id), 不存在或存在多個都會引起失敗。
+- settings: index 的設置
+	- displayedAttributes: 返回的 document 中包含的字段
+	- distinctAttributes: 返回的 document 中該字段值都不同
+	- faceting: 
+	- filterableAttributes: 用於過濾和切面的字段
+	- pagination: 分頁設置
+	- rankingRules: 按重要性排序的 ranking 規則列表
+	- searchableAttributes: 用於搜索的字段列表,按重要性排序
+	- sortableAttributes: 可排序字段列表
+	- stopWords: 用於搜索時忽略的詞表
+	- synonyms: 近似詞列表
+	- typoTolerance: 輸入容差設置
+- task
+> 有可能影響搜索性能的操作置入 task queue,返回 taskUid 用於追蹤 task 狀態(enqueued, processing, succeeded, failed, canceled)[前兩個表示 task 未完成,其他表示已完成]
+> 不和 index 相關的 task 叫 Global tasks, 有
+	- dumpCreation
+	- taskCancelation
+	- taskDeletion
+	- indexSwap
+	- snapshotCreation
+> Global tasks 通過 `"indexes":[*]` 來訪問
+> task 有優先級
+	- taskCancelation
+	- taskDeletion
+	- snapshotCreation
+	- dumpCreation
+優先處理,其他按入隊順序處理
+
+
+- relevancy
+> 由搜索詞和搜索結果的相關性定義。由 settings 中的 rankingRules 作用。
+> 內置的 6 個 rules 按順序配置(及含義)如下
+```json
+[
+	"words",	// 匹配到的詞越多越靠前,所個搜索詞重要性從右至左
+	"type",		// 輸入容差越少越靠前
+	"proximity",	// 匹配到的詞越鄰近且順序一致越靠前
+	"attribute",	// 根據 attribute 的優先級
+	"sort",			// 受查詢 sort 參數影響
+	"exactness"		// 匹配搜索詞越一致越靠前
+]
+```
+
+## 配置/啟動參數
+
+參見 https://www.meilisearch.com/docs/learn/configuration/instance_options#configuration-file-path
+
+## 數據備份
+
+- dumps 無模式,raw 數據,用於 meilisearch 版本升級
+- snapshots 有模式,已索引,用於數據備份/回滾,但不兼容與各個版本
+
+## key與權限
+
+啟動參數可使用 --master-key 指定一個 16 bytes的 utf8 字符串作為 master key。在 production 模式下,必須指定 master key
+
+當以 master key 啟動後,除 `/health` 外的 API 都會受到保護, 必須包含 `Authorization` 頭才能成功執行
+
+首次啟動後,會生成兩個 API key,一個可訪問 search 路由,一個可訪問 admin 路由
+
+使用 master key 可通過 /key 路由管理 API key, 可創建任意 API key, 來管理各種資源
+
+## Language SDKs
+
+[多種語言API](https://www.meilisearch.com/docs/learn/what_is_meilisearch/sdks)
+
+## Metrics
+
+通過 `/metrics` 路由接入 prometheus.
+
+## WebUI
+
+[meilisearch-ui](https://github.com/riccox/meilisearch-ui)
+> 多實例管理

+ 8 - 0
content/res/github_projects.md

@@ -100,6 +100,10 @@ draft: false
 > Composable all-in-one mail server.
 - [Memos](https://github.com/usememos/memos)
 > Private memo system
+- [centrifugo](https://github.com/centrifugal/centrifugo)
+> Scalable real-time messaging server in a language-agnostic way. Set up once and forever.
+- [chromedp](https://github.com/chromedp/chromedp)
+> A faster, simpler way to drive browsers supporting the Chrome DevTools Protocol.
 
 ### Python
 
@@ -116,6 +120,7 @@ draft: false
 > A fancy self-hosted monitoring tool
 - [react-admin](https://github.com/marmelab/react-admin)
 > 后台 admin 库
+<<<<<<< Updated upstream
 - [tremor](https://www.tremor.so/)
 > 後臺組件
 - [refine](https://refine.dev/)
@@ -134,6 +139,9 @@ draft: false
 - [solidjs](https://www.solidjs.com/)
 - [daisyui](https://daisyui.com/)
 > he most popular, free and open-source Tailwind CSS component library
+=======
+- [react-native-skia](https://shopify.github.io/react-native-skia)
+>>>>>>> Stashed changes
 
 ### Rust