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 = ;var search = ;
You can also change some configuration values according to the full text search.
var fulltextsearchlight = ;var search = 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 valuessearch;search;search;
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 objectsvar obj = name: 'Alexandra' age: 27 student: true hobbies: 'Tennis' 'Football' 'Party'; car: make: 'Volvo' year: 2012 topspeed: 280 ; search;
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 falsevar { // Return false if you want to ignore field if key == 'student' || key == 'topspeed' return false; // Ignore field return true; // Accept field}; search;
Search
var results = search;// 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 idvar f = search; // With that id you can remove the value from the searchsearch; // Returns an array with all result objectsvar result = search;// result: ['Paul']
Save and Load
var fulltextsearchlight = ;var search = ; // Addsearch; // Save current dbsearch;
Save and Load (Sync)
var fulltextsearchlight = ;var search = ; // Addsearch; // Save current dbsearch; // Load dbvar search_loaded = fulltextsearchlight;var results = search_loaded;
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 idsearch.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 idsearch.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!