Repository
Current version released
2 years ago
Versions
Try the live demo
Installation
You can install Lyra using npm
, yarn
, pnpm
:
npm i @lyrasearch/lyra
yarn add @lyrasearch/lyra
pnpm add @lyrasearch/lyra
Usage
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, 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 delete
method:
delete (db, "L1tpqQxc0c2djrSN2a6TJ");
License
Lyra is licensed under the Apache 2.0 license.