Orama Cloud
整合 Orama Cloud
首先,請在 Orama Cloud 上建立帳號。
REST API
使用 REST API 整合時,您的文件網站需要自行上傳索引。
-
在 Orama Cloud 主控台建立一個以 REST API 作為資料來源的新專案。
將您的認證資訊儲存在
.env.local中,例如 (在 Vite 框架上NEXT_PUBLIC_改為VITE_,在 Astro 上則為PUBLIC_) :NEXT_PUBLIC_ORAMA_DATASOURCE_ID="Rest API data source ID" NEXT_PUBLIC_ORAMA_PROJECT_ID="project ID" NEXT_PUBLIC_ORAMA_API_KEY="public API key" ORAMA_PRIVATE_API_KEY="private API key" -
預先算繪
static.json路由,以便在建置時匯出搜尋索引,並在每次建置後透過指令碼將索引同步至 Orama Cloud:app/static.json/route.ts import { source } from '@/lib/source'; import { toDocuments } from 'fumadocs-core/search/orama-cloud'; export const revalidate = false; export async function GET() { return Response.json(await toDocuments(source)); }scripts/sync-content.ts import * as fs from 'node:fs/promises'; import { type OramaDocument as DocumentRecord, sync } from 'fumadocs-core/search/orama-cloud'; import { OramaCloud } from '@orama/core'; // Next.js writes it under `route-cache` when built with an adapter, like on Vercel const [file] = await Array.fromAsync(fs.glob('.next/server/{app,route-cache/*/*/$}/static.json.body')); const records = JSON.parse(await fs.readFile(file, 'utf-8')) as DocumentRecord[]; const orama = new OramaCloud({ projectId: process.env.NEXT_PUBLIC_ORAMA_PROJECT_ID!, apiKey: process.env.ORAMA_PRIVATE_API_KEY!, }); await sync(orama, { index: process.env.NEXT_PUBLIC_ORAMA_DATASOURCE_ID!, documents: records, }); console.log(`search updated: ${records.length} records`);package.json { "scripts": { "build": "next build && node --env-file-if-exists=.env.local scripts/sync-content.ts" } }build指令碼會在每次建置時進行同步,因此請在您的部署平台上設定相同的變數。
搜尋用戶端
若要在用戶端搜尋文件,可以考慮以下方式:
-
使用 Fumadocs 內建的 hook 自訂搜尋 UI:
import { useOramaCloudSearch } from 'fumadocs-core/search/client'; import { OramaCloud } from '@orama/core'; const orama = new OramaCloud({ projectId: process.env.NEXT_PUBLIC_ORAMA_PROJECT_ID, apiKey: process.env.NEXT_PUBLIC_ORAMA_API_KEY, }); const params = { // 選用的搜尋參數 }; const { search, onSearchChange, isLoading, data } = useOramaCloudSearch({ client: orama, params, }); -
直接使用 Orama 提供的搜尋用戶端。
網路爬蟲
- 在主控台中建立 Crawler 資料來源,並套用「Documentation」預設範本,完成正確設定。
- 從主控台複製認證資訊。
搜尋用戶端
設定方式與 REST API 整合相同,但請務必將 index 設為 crawler。
import { useOramaCloudSearch } from 'fumadocs-core/search/client';
import { OramaCloud } from '@orama/core';
const orama = new OramaCloud({
projectId: '<project id>',
apiKey: '<read only api key>',
});
const params = {
// 選用的搜尋參數
};
const { search, onSearchChange, isLoading, data } = useOramaCloudSearch({
index: 'crawler',
client: orama,
params,
});Fumadocs UI 也是如此。
How is this guide?
最後更新於
