Orama Community Update - May '23
Posted by
Michele Riva
Michele Riva
CTO @OramaSearch
Community Updates
May 01, 2023

Orama Community Update - May '23

Orama community update May 2023

Welcome to the monthly blog series where we bring you up to speed on recent happenings in the Orama community and celebrate noteworthy milestones.

Wait, what's Orama?

Orama is an immutable, runtime-agnostic, edge-ready, and in-memory full-text search engine that works both on client and server.

Through the implementation of an optimized prefix tree and some clever tweaks, Orama can perform searches through millions of entries in microseconds.

You can get started with just a few lines of code:

1import { create, insert, search } from '@orama/orama' 2 3const db = await create({ 4 schema: { 5 title: 'string', 6 rating: 'number', 7 isFavorite: 'boolean' 8 } 9}) 10 11await insert(db, { 12 title: 'The Lord of the Rings', 13 rating: 9.3, 14 isFavorite: true 15}) 16 17await insert(db, { 18 title: 'The Hobbit', 19 rating: 8.1, 20 isFavorite: true 21}) 22 23const results = await search(db, { 24 term: 'lord of the rings', 25 where: { 26 isFavorite: true 27 } 28})

We have lots of exciting plans for the Orama open-source project, as well as, our solution for handling large indexes.

If you'd like more details about our roadmap and upcoming product announcements, contact us to schedule a quick Zoom to learn more.

šŸ† Community Rewards

Orama community rewards

Is your organization using Orama to solve interesting search problems? Share your success story at info@oramasearch.com and claim a box of community rewards as a thank you!

šŸ“¦ New Releases

Orama 1.0.0-beta.13 was released last week, which made for six releases in the month of April. Here's a summary of the new features, bug fixes and enhancements for the month:

šŸŽ‰ New features

  • Allow empty search (#357)
    You don't longer have to specify a search term to perform a search. This is useful when you want to retrieve all the documents in the database.
  • Preflight API (#355)
    Preflight search allows you to run a preliminary search query that will return just the number of results that match your query. This is useful for determining if a search query will return a large number of results, which can be useful for determining if you should run a full search query and facets (if needed).
  • Threshold API (#352)
    The threshold property is used to set the minimum/maximum number of fuzzy matches to return.
  • Stemming disabled by default (#349)
    While conducting research and gathering feedback, we found out that the majority of the Orama users don't use stemming. There are also a lot of people that are still using CommonJS, which causes some problems with dynamic module imports. Therefore, we decided to disable stemming, which is still available as an opt-in feature.
  • String filters (#350)
    You can now filter search results by strings! This is useful when you want to filter results by a specific field, such as category or status. Read more here.
  • New Nextra plugin (#344)
    As we migrated our documentation from Docusaurus to Nextra, we created a plugin to perform search through any Nextra website. Try it out!
  • Componentize scores calculation (#338)
    You can customize how to calculate a given result's ranking score via the built-in hooks and components systems.

šŸ› ļø Notable Fixes

  • Fixed threshold length calculation (#356)
  • Fixed installation instructions (#347)
  • Fixed Astro plugin docs (#343)
  • Fixed batchSize usage docs (#346)
  • Fixed Node v14 incompatibility (#342)

Check out the Orama releases page on GitHub to learn more.

āœØ Community Contributions

A few quick shoutouts to the following community members who contributed to this month's releases:

šŸ“ˆ Orama Community Stats

We are just getting started, but the Orama community is growing fast!

šŸŽ„ New Blogs, Videos and Events

Blog posts

Upcoming Events

  • May 9: Codemotion šŸ‡ŖšŸ‡ø
  • May 12: BeJs šŸ‡§šŸ‡Ŗ
  • May 19: Pisa.dev šŸ‡®šŸ‡¹
  • May 25: DevSum šŸ‡øšŸ‡Ŗ
  • May 26: Offline šŸ‡®šŸ‡¹
  • June 21: KCDC šŸ‡ŗšŸ‡ø

What's Next?

šŸ‘‹ See you next month!