UNPKG

pure-fts

Version:
59 lines (37 loc) 1.49 kB
# Pure Full Text Search Fast, compact full text search in pure javascript to support `npm-kludge-search`. ## Usage ### Building an Index ```js var Purefts = require('pure-fts'); var p = new Purefts(); p.add({ name: 'foo', description: 'a foo thing' }); p.add({ name: 'bar', description: 'a bar thing' }); p.freeze('index'); ``` ### Searching an Index ```js var Purefts = require('pure-fts'); Purefts.thaw('index', function (err, p) { p.get('foo', cb); # cb(err, data) p.find({ name: 'foo'}, cb, done) # returns { name: 'foo', description: 'a foo thing' } p.search('thing', cb, done); # returns [ 'foo', 'bar' ] }) ``` When there are two callbacks `cb` and `done`, `cb` is called once with each matching record, and `done` is called after the search is complete. When there is only one callback (for `get`) it is called with the matching record or NULL if missing. To support the needs of `npm-kludge-search`, this module assumes that `name` is the unique object key. The contents of the fields `url`, `keywords`, `name` and `description` will be added to the full text search index, in addition to the `name` field of the objects in the `maintainers` array. Any of these fields are allowed to be missing. It would make sense to abstract this into a set of paths, if this module were going to be useful for general purpose fts indexing. ## TODO fts doesn't work right yet index on keyword or author does not work