This package has been deprecated

Author message:

Please install Lyra from the new npm package @lyrasearch/lyra

@nearform/lyra
TypeScript icon, indicating that this package has built-in type declarations

0.1.1 • Public • Published

Lyra

Tests

Try the live demo

MOVED TO @LYRASEARCH/LYRA

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.

Readme

Keywords

none

Package Sidebar

Install

npm i @nearform/lyra

Weekly Downloads

1

Version

0.1.1

License

Apache-2.0

Unpacked Size

30.3 MB

Total Files

127

Last publish

Collaborators

  • lucalanziani
  • donal.moynihan
  • simoneb
  • eamonn.frisby