New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

full-text-search

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

full-text-search

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

latest
Source
npmnpm
Version
0.0.16
Version published
Maintainers
1
Created
Source

This is a fork of https://github.com/frankred/node-full-text-search-light with a fixed bug

This is done to update the npm version with the fix

Full Text Search Light - Logo

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

From GitHub

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

Documentation

Init

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

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

var fullTextSearch = require('full-text-search');
var search = new fullTextSearch({
  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
  minimum_chars: 3      // default = 1, The less minimum chars you want to use for your search, 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 over give 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 fullTextSearch = require('full-text-search');
var search = new fullTextSearch();

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

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

// Load db
var search_loaded = db.loadSync('search.json');
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

  • db.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

full

FAQs

Package last updated on 13 Aug 2015

Did you know?

Socket

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