Socket
Socket
Sign inDemoInstall

full-text-search-light

Package Overview
Dependencies
4
Maintainers
1
Versions
16
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    full-text-search-light

A pure in JS written full text search with an easy to use API.


Version published
Weekly downloads
428
increased by38.51%
Maintainers
1
Install size
103 kB
Created
Weekly downloads
 

Readme

Source

Full Text Search Light is a pure JS full text search engine with an ultrafast search and the following commands:

  • Add
  • Search
  • Remove
  • Save to file
  • Load from file

You can add every kind of data, also complex objects.

Install

From NPM

npm install full-text-search-light

From GitHub

npm install git+https://github.com/frankred/node-full-text-search-light.git

Documentation

Init

var fulltextsearchlight = require('full-text-search-light');
var search = new fulltextsearchlight();

You can also change some configuration values according to the full text search.

var fulltextsearchlight = require('full-text-search-light');
var search = new fulltextsearchlight({
  ignore_case: false,   // default = true, Ignore case during all search queries
  index_amount: 8;   // default = 12, The more indexes you have, the faster can be your search but the slower the 'add' method  gets
});

Add

// Add values
search.add('Peter');
search.add('Paul');
search.add('Maria');

You can also add objects or arrays to the search. Every child value will be added to the search, no matter if it's an array or object.

// Add objects
var obj = {
    name: 'Alexandra',
    age: 27,
    student: true,
    hobbies: ['Tennis', 'Football', 'Party'];
    car: {
        make: 'Volvo',
        year: 2012,
        topspeed: 280
    }
};

search.add(obj);

Add with filter

If you want to ignore fields you can pass a filter function. If you want to ignore a field or value just return false. If you return true or everything else the field is added to the index.

// Add filter, this function will be called on every single field
// If you don't want to add a field to the search just return false
var filter = function (key, val) {
    // Return false if you want to ignore field
    if (key == 'student' || key == 'topspeed') {
        return false;   // Ignore field
    }

    return true;    // Accept field
};

search.add(obj, filter);
var results = search.search('p');
// results = ['Peter', 'Paul']

Remove

You can remove objects or values out of the search by saving the id which is returned from the add method.

// Add returns an id
var f = search.add("Frank");

// With that id you can remove the value from the search
search.remove(f);

// Returns an array with all result objects
var result = search.search('pau');
// result: ['Paul']

Save and Load

var fulltextsearchlight = require('full-text-search-light');
var search = new fulltextsearchlight();

// Add
search.add('Hello World');

// Save current db
search.save('search.json', function(error){

    // Load db
    fulltextsearchlight.load('search.json', function(error, search_loaded){
        var results = search_loaded.search('World');
    });
});

Save and Load (Sync)

var fulltextsearchlight = require('full-text-search-light');
var search = new fulltextsearchlight();

// Add
search.add('Hello World');

// Save current db
search.saveSync('search.json');

// Load db
var search_loaded = fulltextsearchlight.loadSync('search.json');
var results = search_loaded.search('World');

Functions

This are all functions that can be used.

add

  • search.add('Just a string value') - Add a string to the search, returns a unique id
  • search.add(obj) - Add a object to the search, returns a unique id

If you add numbers or booleans to the search they will be converted to strings.

  • search.add(false) - Add booelan to the search (ok this does not really make sense, but it works.), returns a unique id
  • search.add(42) - Add number to the search, returns a unique id

search

  • search.search('value') - Search for the string 'value'. Returns the results of the data as an array

remove

  • search.remove(1337) - Remove the data with the id 1337 from the search. This id was returned by adding a value or obj.

drop

  • search.drop() - Drops the search database and resets all data. The configuration is kept.

saveSync

  • search.saveSync('path/to/file.json') - Save current search db to a json file.

loadSync

  • fulltextsearchlight.loadSync('path/to/file.json') - Load a search from a file;

Run tests

You need mocha installed globally:

npm install -g mocha

Now you can run tests if you navigate to project root:

mocha test

##License MIT Free Software, Hell Yeah!

Keywords

FAQs

Last updated on 11 Dec 2018

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc