Orama:快速、无依赖性的全文和矢量搜索引擎,具有拼写错误容错、过滤器、构面、词干提取等功能
Orama是一款快速、无依赖性的全文和矢量搜索引擎,支持拼写错误容错、过滤器、构面、词干提取等功能,兼容任何JavaScript运行时。

介绍
你知道吗?在我们日常使用搜索引擎的时候,拼写错误、复杂的查询条件总是让人头疼。不过呢,有了Orama,这些问题都不再是问题啦!Orama是一款快速、无依赖性的全文和矢量搜索引擎,它不仅支持拼写错误容错,还提供了丰富的过滤器、构面和词干提取功能,简直就是搜索界的全能选手。
Orama的亮点功能
首先,Orama的拼写错误容错功能真的是太贴心了。想象一下,你在搜索的时候不小心打错了字,Orama会自动帮你纠正,让你轻松找到想要的结果。再加上它的过滤器和构面功能,你可以根据自己的需求进行精确的搜索,简直不要太方便。
另外,Orama还支持矢量搜索和混合搜索,这意味着你可以根据不同的使用场景选择合适的搜索模式。无论是全文搜索还是矢量搜索,Orama都能轻松应对。
安装和使用
安装Orama也非常简单。你可以通过npm、yarn、pnpm或bun来安装它:
bash
npm i @orama/orama
或者直接在浏览器模块中引入:
html
<script type="module">
import { create, search, insert } from 'https://unpkg.com/@orama/orama@latest/dist/index.js';
// ...
</script>
如果你是Deno用户,也可以使用相同的CDN URL或者npm specifiers来引入。
如何使用Orama
使用Orama其实很简单。首先,你需要创建一个新的数据库实例并设置索引模式:
javascript
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',
},
},
});
创建好数据库实例后,你就可以开始添加一些文档了:
javascript
await insert(db, {
name: 'Wireless Headphones',
description: 'Experience immersive sound quality with these noise-cancelling wireless headphones.',
price: 99.99,
embedding: [...],
meta: {
rating: 4.5,
},
});
数据插入完成后,你就可以开始查询数据库了:
javascript
const searchResult = await search(db, {
term: 'headphones',
});
高级搜索功能
Orama不仅支持基本的全文搜索,还可以进行矢量搜索和混合搜索。通过指定搜索的属性和矢量,你可以实现更为复杂的搜索需求。
此外,Orama还支持地理搜索。你可以通过指定地理坐标和半径来过滤搜索结果,非常适合需要基于位置的应用场景。
插件系统
Orama还提供了丰富的插件系统,你可以根据自己的需求编写和使用插件,进一步扩展Orama的功能。
最后嘛,我的感觉是,Orama真的是一款功能强大且易于使用的搜索引擎工具。不管你是开发者还是普通用户,Orama都能为你提供优质的搜索体验。赶紧试试吧!