AI个人学习
和实操指南

Orama:高性能全文本和向量搜索引擎

综合介绍

Orama 是一个开源的高性能搜索引擎,完全用 TypeScript 编写,支持全文本搜索、向量搜索和混合搜索。Orama 旨在在任何 JavaScript 运行时环境中工作,提供快速、可靠的搜索功能。它的设计目标是轻量级(小于2KB),但功能强大,适用于各种应用场景,包括浏览器、服务器和边缘网络。Orama 提供了丰富的功能,如全文本搜索、向量搜索、混合搜索、地理搜索、拼写容错和多语言支持等,能够满足从小型项目到大型企业应用的各种搜索需求。

Orama:高性能全文本和向量搜索引擎-1


 

功能列表

  • 全文本搜索:支持对文本内容进行快速、准确的全文搜索。
  • 向量搜索:支持基于向量的搜索,适用于图像、音频等非文本数据的搜索。
  • 混合搜索:结合全文本和向量搜索,提供更全面的搜索结果。
  • 高性能:优化的搜索算法,确保在大数据量下仍能快速响应。
  • 开源:完全开源,允许用户根据需要进行定制和扩展。
  • 无依赖:无需任何外部依赖,简化了安装和使用过程。
  • 多平台支持:兼容各种 JavaScript 运行时环境,包括 Node.js 和浏览器。
  • 地理搜索:支持基于地理位置的搜索功能。
  • 拼写容错:提供拼写错误容忍度,提升搜索体验。
  • 多语言支持:支持30种语言的词干提取和标记化。

 

使用帮助

安装

Orama 可以通过 npm、yarn 或 pnpm 安装。以下是使用 npm 安装的步骤:

  1. 打开终端或命令行工具。
  2. 运行以下命令安装 Orama:
   npm install @orama/orama
  1. 安装完成后,您可以在项目中引入 Orama:
   import { create, insert, search } from '@orama/orama';

使用

创建索引

  1. 创建一个新的索引:
   const db = create({
schema: {
name: 'string',
description: 'string',
price: 'number',
embedding: 'vector[1536]',
meta: {
rating: 'number',
},
},
});
  1. 添加文档到索引:
   insert(db, {
name: 'Noise cancelling headphones',
description: 'Best noise cancelling headphones on the market',
price: 99.99,
embedding: [0.2432, 0.9431, 0.5322, 0.4234, ...],
meta: { rating: 4.5 },
});
  1. 执行搜索:
   const results = search(db, { term: 'Best headphones' });
console.log(results);

向量搜索

  1. 创建向量索引:
   const vectorIndex = create({
schema: {
name: 'string',
embedding: 'vector[1536]',
},
});
  1. 添加向量到索引:
   insert(vectorIndex, {
name: 'Sample vector',
embedding: [0.1, 0.2, 0.3, ...],
});
  1. 执行向量搜索:
   const vectorResults = search(vectorIndex, {
term: 'Sample vector',
mode: 'vector',
});
console.log(vectorResults);

高级功能

Orama 还提供了许多高级功能,如自定义数据导入、质量检查、分析工具和安全配置等。用户可以根据需要进行配置,以优化搜索体验。

示例项目

Orama 已被多个知名网站使用,如 nodejs.org、jsr.io 和 tanstack.com。这些网站每天处理数百万次查询,展示了 Orama 的强大性能和可靠性。

未经允许不得转载:首席AI分享圈 » Orama:高性能全文本和向量搜索引擎

首席AI分享圈

首席AI分享圈专注于人工智能学习,提供全面的AI学习内容、AI工具和实操指导。我们的目标是通过高质量的内容和实践经验分享,帮助用户掌握AI技术,一起挖掘AI的无限潜能。无论您是AI初学者还是资深专家,这里都是您获取知识、提升技能、实现创新的理想之地。

联系我们
zh_CN简体中文