Package Exports
- @lyrasearch/lyra
- @lyrasearch/lyra/dist/cjs/lyra.js
- @lyrasearch/lyra/dist/esm/lyra.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@lyrasearch/lyra) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme

Try the live demo
Installation
You can install Lyra using npm, yarn, pnpm:
npm i @lyrasearch/lyrayarn add @lyrasearch/lyrapnpm add @lyrasearch/lyraUsage
Lyra is quite simple to use. The first thing to do is to create a new database instance and set an indexing schema:
import { create, insert, remove, search } from "@lyrasearch/lyra";
const db = create({
schema: {
author: "string",
quote: "string",
},
});Lyra will only index string properties, but will allow you to set and store additional data if needed.
Once the db instance is created, you can start adding some documents:
insert(db, {
quote:
"It is during our darkest moments that we must focus to see the light.",
author: "Aristotle",
});
insert(db, {
quote:
"If you really look closely, most overnight successes took a long time.",
author: "Steve Jobs",
});
insert(db, {
quote:
"If you are not willing to risk the usual, you will have to settle for the ordinary.",
author: "Jim Rohn",
});
insert(db, {
quote: "You miss 100% of the shots you don't take",
author: "Wayne Gretzky - Michael Scott",
});After the data has been inserted, you can finally start to query the database.
const searchResult = search(db, {
term: "if",
properties: "*",
});In the case above, you will be searching for all the documents containing the
word if, looking up in every schema property (AKA index):
{
elapsed: 99, // elapsed time is in microseconds
hits: [
{
id: 'ckAOPGTA5qLXx0MgNr1Zy',
quote: 'If you really look closely, most overnight successes took a long time.',
author: 'Steve Jobs'
},
{
id: 'fyl-_1veP78IO-wszP86Z',
quote: 'If you are not willing to risk the usual, you will have to settle for the ordinary.',
author: 'Jim Rohn'
}
],
count: 2
}You can also restrict the lookup to a specific property:
const searchResult = search(db, {
term: "Michael",
properties: ["author"],
});Result:
{
elapsed: 111,
hits: [
{
id: 'L1tpqQxc0c2djrSN2a6TJ',
quote: "You miss 100% of the shots you don't take",
author: 'Wayne Gretzky - Michael Scott'
}
],
count: 1
}If needed, you can also delete a given document by using the remove method:
remove(db, "L1tpqQxc0c2djrSN2a6TJ");License
Lyra is licensed under the Apache 2.0 license.