Today we're celebrating a great milestone for Orama: the release of the first stable version of the project, v1.0.0! 🎉
Orama started as an open-source project at NearForm in 2022, initially developed by me under the name of Lyra. I developed it to give a talk on how full-text search engines work at the WeAreDevelopers conference in Berlin, the biggest developers conference in the world with more than 8000 attendees!
Since its first release, Orama got a lot of traction thanks to its simple APIs and incredible performances, gaining more than 5,800 stars on GitHub in just a few months and thousands of downloads on NPM every day.
In early 2023, in agreement with NearForm, we decided to create OramaSearch, a company that will be dedicated to the development of Orama and its ecosystem.
With Orama v1.0.0, we're introducing some new, highly requested features, but before digging into them, let's make this official: Orama is out of beta and its APIs are now stable!
But that's not all. New features and fixes released in v1.0.0 include:
We've introduced a new set of APIs to sort your results by a specific property:
1import { create, insertMultiple, search } from '@orama/orama' 2 3const db = await create({ 4 schema: { 5 title: 'string', 6 year: 'number', 7 meta: { 8 rating: 'number' 9 favorite: 'boolean' 10 } 11 } 12}) 13 14await insertMultiple(db, [...]) 15 16const results = await search(db, { 17 term: 'matrix', 18 sortBy: { 19 property: 'year', 20 order: 'DESC' 21 } 22})
You can also provide a custom sorting function to sort your results with custom logic:
1const results = await search(db, { 2 term: 'matrix', 3 sortBy: ([,,doc1], [,,doc2]) => doc1.meta.rating - doc2.meta.rating 4})
Read more about the sorting APIs in the official docs.
With Orama v1.0.0, you can now index and search array properties.
1import { create } from '@orama/orama' 2 3const db = await create({ 4 schema: { 5 title: 'string', 6 tags: 'string[]', 7 ratings: 'number[]' 8 } 9})
This will allow you to index and search multivalue fields like tags, categories, ratings, and more... imagination is your only limit here!
Fixes shipped with Orama v1.0.0 includes:
remove
function is invokedOrama v1.0.0 is a small step towards a future where full-text search engines will be easy to use, accessible to every developer, and faster for every user.
BrainRepo summarized perfectly what we are aiming for in this fantastic article about converting his podcast into a knowledge base using Orama:
If JavaScript has democratized software development, I would say that Orama has done the same for the search experience.
We're incredibly excited about the future of Orama and we can't wait to share with you what we're working on!
In the meanwhile, if you want to stay up to date with the latest news about Orama, you can follow us on Twitter and join our Slack channel. Here you will find a great community of developers willing to help you with your projects and share their experience with Orama.
I'd also take to opportunity to remind you about the Orama community awards:
Is your organization using Orama to solve interesting search problems? Have you contributed to Orama, written an article, made a public talk or made a YouTube video? Share your success story at info@oramasearch.com and claim a box of community rewards as a thank you!