Orama 开源项目教程
oramaPlug and play React charts项目地址:https://gitcode.com/gh_mirrors/oram/orama
项目介绍
Orama 是一个快速、无依赖的完整文本和向量搜索引擎,具有拼写错误容错、过滤器、分面、词干提取等功能。它适用于任何 JavaScript 运行时环境,包括浏览器、服务器和服务。Orama 支持多种搜索范式,包括向量搜索和混合搜索,使其适用于各种特定的使用场景。
项目快速启动
安装 Orama
你可以使用 npm、yarn、pnpm 或 bun 安装 Orama:
npm i @orama/orama
或者直接在浏览器模块中导入:
<html>
<body>
<script type="module">
import { create, search, insert } from 'https://unpkg.com/@orama/orama@latest/dist/index.js'
</script>
</body>
</html>
创建数据库实例
首先,创建一个新的数据库实例并设置索引模式:
import { create, insert, remove, search, searchVector } from '@orama/orama'
const db = await create({
schema: {
name: 'string',
description: 'string',
price: 'number',
embedding: 'vector[1536]', // 向量大小必须在模式初始化时指定
meta: {
rating: 'number'
}
}
})
应用案例和最佳实践
分面搜索
Orama 允许你根据特定条件进行分面搜索。例如,你可以搜索价格低于 199.99 且评分大于 4 的产品:
const searchResult = await search(db, {
term: '沉浸式音质',
where: {
price: { lte: 199.99 },
rating: { gt: 4 }
}
})
向量搜索
Orama 支持向量搜索,你可以指定要进行向量搜索的属性以及用于执行向量相似度的向量:
const searchResult = await searchVector(db, {
mode: 'vector', // 或 'hybrid'
vector: {
value: [], // OpenAI 嵌入或其他类似向量作为输入
property: 'embedding' // 要搜索的属性,向量搜索时必须指定
}
})
典型生态项目
Orama 可以与多种生态项目集成,例如:
- Vitepress 插件: 用于在 Vitepress 文档中集成 Orama 搜索功能。
- Docusaurus 插件: 用于在 Docusaurus 文档中集成 Orama 搜索功能。
- Astro 插件: 用于在 Astro 项目中集成 Orama 搜索功能。
这些插件可以帮助你在不同的前端框架中快速集成 Orama 搜索功能,提升用户体验。
通过以上步骤,你可以快速启动并使用 Orama 进行高效的全文和向量搜索。
oramaPlug and play React charts项目地址:https://gitcode.com/gh_mirrors/oram/orama