utkarshdubey / searchzilla

πŸ” Searchzilla is a simple search client-side javascript library to integrate search.

Home Page:https://searchzilla.netlify.app

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

πŸ” searchzilla

Netlify Status NPM Version Awesomeness Level

Searchzilla is a simple, easy way of implementing search on the client-side. You don't really have to read the description either, just start using it.

🍭 Usage

Simply download the files from the dist folder or install the npm version by doing npm install searchzilla or yarn add searchzilla.

Setting up

It's just a few lines of code and you can get your search up and running straightforward.

  • To initialize the search instance:
// Initialize the class

// You can pass your own data from fetch() requests as well.
const mySearch = new Search({data: [{id: 1, name: "Chuck norris", "description": "nobody knows me"}, {id: 2, name: "Billy Murphy", description: "people know me"}, {id: 3, name: "Audey Coda", description: "i dont wanna be known you stranger"}]);

// Call the init() method to initialize search
mySearch.init();

You can similarly add fields to look up through the .add() method.

// Looks up for only the specified fields.
mySearch.add('name', 'description');

Now simply search using the search() method like this.

// returns [{id: 3, name: "Audey Coda", description: "i dont wanna be known you stranger"}]
mySearch.search('Audey');

Blacklisting

You can black list search results using exclude: ['some', 'words'] in your search object like this:

new Search({data: someData, exclude: ['more', 'words']})

This will exclude all those results containing specific keywords that are mentioned in the exclude array. A better use-case would be to filter stopwords or profane words.

Todo

  • Add key filtering for objects and lists.
  • Optimizations in the current loop, hashtables?

About

πŸ” Searchzilla is a simple search client-side javascript library to integrate search.

https://searchzilla.netlify.app


Languages

Language:TypeScript 86.8%Language:HTML 13.2%